【发布时间】:2011-11-29 07:11:49
【问题描述】:
如何将灰度 OpenCV 图像转换为黑白图像?我看到 similar question 已被询问,但我使用的是 OpenCV 2.3,建议的解决方案似乎不再有效。
我正在尝试将灰度图像转换为黑白,以便任何不是绝对黑色的东西都是白色的,并将其用作surf.detect() 的蒙版,以忽略在黑色蒙版边缘发现的关键点地区。
下面的 Python 让我快到了,但发送到 Threshold() 的阈值似乎没有任何效果。如果我将其设置为 0 或 16 或 128 或 255,结果是相同的,所有值 > 128 的像素都变为白色,而其他所有像素都变为黑色。
我做错了什么?
import cv, cv2
fn = 'myfile.jpg'
im_gray = cv2.imread(fn, cv.CV_LOAD_IMAGE_GRAYSCALE)
im_gray_mat = cv.fromarray(im_gray)
im_bw = cv.CreateImage(cv.GetSize(im_gray_mat), cv.IPL_DEPTH_8U, 1);
im_bw_mat = cv.GetMat(im_bw)
threshold = 0 # 128#255# HAS NO EFFECT!?!?
cv.Threshold(im_gray_mat, im_bw_mat, threshold, 255, cv.CV_THRESH_BINARY | cv.CV_THRESH_OTSU);
cv2.imshow('', np.asarray(im_bw_mat))
cv2.waitKey()
【问题讨论】:
标签: python image-processing opencv computer-vision