最近编写一段程序用到感知哈希算法
def classify_pHash(image1,image2):
image1 = cv2.resize(image1,(32,32))
image2 = cv2.resize(image2,(32,32))
gray1 = cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY)
dct1 = cv2.dct(np.float32(gray1))
dct2 = cv2.dct(np.float32(gray2))
dct1_roi = dct1[0:8,0:8]
dct2_roi = dct2[0:8,0:8]
hash1 = getHash(dct1_roi)
hash2 = getHash(dct2_roi)
return Hamming_distance(hash1,hash2)
结果出现以下错误:
image2 = cv2.resize(image2,(32,32))
cv2.error: OpenCV(3.4.1) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215) ssize.width > 0 && ssize.height > 0 in function cv::resize
从字面理解开始认为可能是两个图的大小不一样,找了半天没有找到原因,最后发现是如果相应的目录里没有image1,image2中的任何一个文件就会产生以上错误提示。
本文介绍了一段使用感知哈希算法(pHash)进行图像相似度比较的Python程序,详细展示了如何将图像调整为统一尺寸并转换为灰度图,接着利用离散余弦变换(DCT)提取特征,并通过计算汉明距离来评估图像间的相似度。同时,文章还讨论了在OpenCV中使用resize函数时可能遇到的错误及其解决办法。
2万+

被折叠的 条评论
为什么被折叠?



