opencv彩色图像到greycode转换错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv彩色图像到greycode转换错误相关的知识,希望对你有一定的参考价值。

我开始了一个项目,它输入2个图像并使用筛选检测关键点,然后检查2个图像的相似性

我实际上完成了项目而没有将图像文件转换为greycode,但后来我明白将图像转换为灰色代码然后比较可以得到更准确的结果

所以我写了代码将图像转换为greycode但我遇到了问题

import cv2
import easygui
import sys
from matplotlib import pyplot as plt

print "image 1 :",sys.argv[1]
print "image 2 :",sys.argv[2]
print "******** comparing images please wait *********"
file1=sys.argv[1]
file2=sys.argv[2]

img1 = cv2.imread(file1,0)#queryImage
img2 = cv2.imread(file2,0)#trainImage
gray_image1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray_image2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

我收到一个错误

image 1 : taj1.jpg
image 2 : taj2.jpg
******** comparing images please wait *********
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /root/opencv-3.3.0/opencv-3.3.0/modules/imgproc/src/color.cpp, line 10638
Traceback (most recent call last):
  File "image_similarity.py", line 14, in <module>
    gray_image1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
cv2.error: /root/opencv-3.3.0/opencv-3.3.0/modules/imgproc/src/color.cpp:10638: error: (-215) scn == 3 || scn == 4 in function cvtColor

我怎么能提前解决它

答案

如果你像加载它一样,你不需要转换它。

img1 = cv2.imread(file1,0)#queryImage
img2 = cv2.imread(file2,0)#trainImage

第二个参数= 0表示您将其加载为灰度图像。

以上是关于opencv彩色图像到greycode转换错误的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenCV 中将图像转换为彩色铅笔素描

将灰度、彩色和精巧的图像(3)全部复制到一个大的 IplImage:Opencv 错误?

OpenCV-Python教程:颜色图(applyColorMap)[只需几行代码生成22种风格各异的彩色图]

使用 FreeImage 库读取 gif 彩色图像并将其转换为 OpenCV Mat

OpenCV在加载时为彩色图像提供错误的颜色

Python+OpenCV数字图像处理,彩色空间变换(HSI和RGB空间转换)