【发布时间】:2016-09-09 07:04:15
【问题描述】:
我正在使用 opencv(2.4.11) python(2.7) 并且正在玩灰色图像。在以灰度模式加载图像并将图像从 BGR 转换为 GRAY 时,我发现了一个不寻常的行为。以下是我的实验代码:
import cv2
path = 'some/path/to/color/image.jpg'
# Load color image (BGR) and convert to gray
img = cv2.imread(path)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Load in grayscale mode
img_gray_mode = cv2.imread(path, 0)
# diff = img_gray_mode - img_gray
diff = cv2.bitwise_xor(img_gray,img_gray_mode)
cv2.imshow('diff', diff)
cv2.waitKey()
当我查看差异图像时,我可以看到被遗漏的像素而不是漆黑图像。你能提出任何理由吗?处理灰色图像的正确方法是什么。
P.S.当我在 SIFT 中使用这两个图像时,关键点是不同的,这可能会导致不同的结果,特别是在处理质量差的图像时。
【问题讨论】:
-
请注意,这不是重复的,因为 OP 知道来自
cv2.imread的图像是 BGR 格式(不像建议的重复问题假设它是RGB 因此提供的答案仅解决该问题
标签: python python-2.7 opencv