读取图像灰度opencv 3.0.0-dev
Posted
技术标签:
【中文标题】读取图像灰度opencv 3.0.0-dev【英文标题】:Read image grayscale opencv 3.0.0-dev 【发布时间】:2014-06-13 21:28:34 【问题描述】:我正在尝试以黑白方式直接读取图像。
我最近将我的 OpenCv 版本更新为 3.0.0-dev,我之前使用的代码不再工作了。
img = cv2.imread(f, cv2.CV_LOAD_IMAGE_GRAYSCALE)
适用于 2.4,但不适用于新版本,因为没有字段 CV_LOAD_IMAGE_GRAYSCALE
。
有什么建议吗?
注意:我知道cv2.imread(f,0)
会起作用,但我不喜欢在我的代码中使用未命名的常量。
谢谢!
【问题讨论】:
你试过cv2.LOAD_IMAGE_GRAYSCALE
吗?我猜所有的CV_
都被重命名了
【参考方案1】:
标志已重命名为cv2.IMREAD_GRAYSCALE
。一般来说,标志现在的名称前缀与它们所指的功能相关。 (例如imread
标志以IMREAD_
开头,cvtColor
标志以COLOR_
开头等)
【讨论】:
太棒了。感谢您的解释,将来可能也会有所帮助。 文档应相应更新:docs.opencv.org/trunk/modules/imgcodecs/doc/…imread(const String& filename, int flags)【参考方案2】:试试这个对我有用
import cv2
im_gray = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE)
thresh = 127
im_bw = cv2.threshold(im_gray, thresh, 255, cv2.THRESH_BINARY)[1]
cv2.imwrite('blackwhite.png', im_bw)
【讨论】:
【参考方案3】:试试这个,每次都对我有用
import cv2
gray_img = cv2.imread('img.png', 0)
cv2.imshow(gray_img)
【讨论】:
我的猜测是反对票,因为 OP 写道“我知道 cv2.imread(f,0) 会起作用,但我不喜欢在我的代码中使用未命名的常量。”以上是关于读取图像灰度opencv 3.0.0-dev的主要内容,如果未能解决你的问题,请参考以下文章
opencv如何将lena.jpg的灰度值读取出来并在计算机上保存下来