首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中使用OpenCV的图像散列模块

在Python中使用OpenCV的图像散列模块
EN

Stack Overflow用户
提问于 2019-04-15 17:05:01
回答 3查看 4.6K关注 0票数 9

我想使用Python中的OpenCV的perceptual hashing functions

这不管用。

代码语言:javascript
复制
import cv2
a_1 = cv2.imread('a.jpg')
cv2.img_hash_BlockMeanHash.compute(a_1)

我得到了:

代码语言:javascript
复制
TypeError: descriptor 'compute' requires a 'cv2.img_hash_ImgHashBase' object but received a 'numpy.ndarray'

而且这也是失败的

代码语言:javascript
复制
a_1_base = cv2.img_hash_ImgHashBase(a_1) 
cv2.img_hash_BlockMeanHash.compute(a_1_base)

我得到了:

代码语言:javascript
复制
TypeError: Incorrect type of self (must be 'img_hash_ImgHashBase' or its derivative)

Colab笔记本显示了这一点:

https://colab.research.google.com/drive/1x5ZxMBD3wFts2WKS4ip3rp4afDx0lGhi

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-22 04:29:04

这是OpenCV python接口与C++接口之间常见的兼容性差距(即类之间的继承方式不同)。有用于此的*_create()静态函数。

所以你应该使用:

代码语言:javascript
复制
hsh = cv2.img_hash.BlockMeanHash_create()
hsh.compute(a_1)

在您的collab笔记本副本中:https://colab.research.google.com/drive/1CLJNPPbeO3CiQ2d8JgPxEINpr2oNMWPh#scrollTo=OdTtUegmPnf2

票数 9
EN

Stack Overflow用户

发布于 2019-07-16 17:55:03

代码语言:javascript
复制
pip install opencv-python
pip install opencv-contrib-python    #img_hash in this one 

(https://pypi.org/project/opencv-python/)

票数 5
EN

Stack Overflow用户

发布于 2021-01-24 09:28:54

这里我将向您展示如何使用OpenCV计算64位pHash。我定义了一个函数,它从传入的彩色BGR cv2图像返回无符号的64位整数pHash:

代码语言:javascript
复制
import cv2
    
def pHash(cv_image):
        imgg = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY);
        h=cv2.img_hash.pHash(imgg) # 8-byte hash
        pH=int.from_bytes(h.tobytes(), byteorder='big', signed=False)
        return pH

您需要安装并导入cv2才能正常工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55685803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档