Cv2中的cvtcolor - 没有属性

时间:2014-06-02 06:50:03

标签: python image opencv numpy rgb

我正在编写一个程序来从USB显微镜收集一系列图像并生成平均值作为去噪方式。我不得不将图像转换为numpy数组,在转换回图像之前将像素相加然后除以。

沿着这条线的某个地方,通道变得混合,所以我的输出是BGR而不是RGB,我正在尝试使用cvtcolor来纠正它,但得到错误:

  

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

     

AttributeError:'module'对象没有属性'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

1 个答案:

答案 0 :(得分:3)

在cv2函数中,cvtcolor重命名为cvtColor。所以你应该使用RgbImage = cv2.cvtColor(ave_image,cv2.COLOR_BGR2RGB)