关于Cv2中的python:cvtcolor-无属性

cvtcolor in Cv2 - no attribute

我正在编写一个程序,用于从USB显微镜收集一系列图像并生成平均值以进行降噪。我必须将图像转换为numpy数组,对像素求和,然后除,然后再转换回图像。

在某些地方通道混合在一起,所以我的输出是BGR而不是RGB,我正在尝试使用cvtcolor进行纠正,但得到错误:

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

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

大概不是从CV2导入cvtcolour,但我不明白为什么。这是相关的代码部分。

最后,尽管平均效果很好,但是还有更优雅的方法吗?我需要一个简单的平均数而不是加权平均数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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


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