Cv2中的CVT颜色-无属性

2024-06-02 05:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,从USB显微镜收集一系列图像,并生成一个平均值作为去噪方法。我要把图像转换成一个numpy数组,求出像素的和,然后在转换成图像之前进行除法。

在线路的某个地方,通道混合,所以我的输出是BGR而不是RGB,我试图使用cvtcolor来纠正这个问题,但得到了错误:

---> 55 RgbImage = cv2.cvtcolor(ave_image,cv2.COLOR_BGR2RGB) 56 return RgbImage

AttributeError: 'module' object has no attribute 'cvtcolor'

可能cvtcolour不是从CV2进口的,但我不明白为什么。这是相关的代码部分。

最后,虽然平均值工作得很好,但有没有更优雅的方法呢?我需要一个简单的平均数而不是加权平均数。

import os, numpy, PIL
from PIL import Image
import cv2
import time
frameaverage=5


 def average_image():

 arr=numpy.zeros((h,w,3),numpy.float)
 # Build up average pixel intensities as floating
 for im in xrange(frameaverage):
    camera_capture = get_image()
    imarr=numpy.array(camera_capture,dtype=numpy.float)
    arr=arr+imarr/frameaverage
 # Round values convert to 8-bit integer
 arr=numpy.array(numpy.round(arr),dtype=numpy.uint8)
 ave_image=Image.fromarray(arr,mode="RGB")
 RgbImage = cv2.cvtcolor(ave_image,cv2.COLOR_BGR2RGB)
 return RgbImage

Tags: 方法图像imageimportnumpyrgbcv2color