Mic*_*ist 2 python rgb opencv numpy image
我正在编写一个程序来从 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
Run Code Online (Sandbox Code Playgroud)
在 cv2 函数中 cvtcolor 重命名为cvtColor. 所以你应该使用 RgbImage = cv2.cvtColor(ave_image,cv2.COLOR_BGR2RGB)
| 归档时间: |
|
| 查看次数: |
14373 次 |
| 最近记录: |