Cv2中的cvtcolor-无属性

问题描述 投票:1回答:2

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

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

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

AttributeError:'模块'对象没有属性'cvtcolor'

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

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

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
python image opencv numpy rgb
2个回答
3
投票

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


0
投票

我正在尝试以下代码:

import numpy as np
import cv2

image = cv2.imread('test_image.jpg')
lane_image = np.copy(image)
gray = cv2.cvtColor(lane_image, cv2.COLOR_RBG2GRAY)
blur=cv2.GaussianBlur(image, (5,5),0)
canny = cv2.Canny(blur ,50,150)
cv2.imshow('result', canny)
cv2.waitKey(0) 

但是它给了我下一条信息:

Traceback (most recent call last):
  File "lanes.py", line 8, in <module>
    gray = cv2.cvtColor(lane_image, cv2.COLOR_RBG2GRAY)
AttributeError: module 'cv2.cv2' has no attribute 'COLOR_RBG2GRAY'

请对此提供咨询

© www.soinside.com 2019 - 2024. All rights reserved.