如何将灰度 OpenCV 图像转换为黑白图像?我看到一个 similar question已经被要求,但我正在使用 OpenCV 2.3,并提出的解决方案似乎不再工作。
I'm trying to convert a greyscale image to black and white, so that anything not absolutely black is white, and use this as a mask for 冲浪检测(), in order to ignore keypoints found on the edge of the black mask area.
下面的 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()