读取图像灰度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的灰度值读取出来并在计算机上保存下来

opencv 提取单通道 ,转化灰度图像。

opencv读图片灰度值

在opencv中,如何把灰度图像中的黑和白快速转化为1和0;

python opencv身份证灰度图二值化应该怎么处理

读取图像中的像素值并保存在 OpenCv 文件中