Как конвертировать черно-белое изображение OpenCV в черно-белое? Я вижу, подобный вопрос уже задавался, но я использую 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()