cv2 查看两张图片的相似度
时间: 2023-07-30 17:12:03 浏览: 86
C++两个图片相似度比较
要比较两张图片的相似度,可以使用 OpenCV 中的 cv2 模块。具体步骤如下:
1. 读取两张图片并转换为灰度图像:
```python
import cv2
img1 = cv2.imread('image1.jpg', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('image2.jpg', cv2.IMREAD_GRAYSCALE)
```
2. 计算两张图片的直方图:
```python
hist1 = cv2.calcHist([img1], [0], None, [256], [0, 256])
hist2 = cv2.calcHist([img2], [0], None, [256], [0, 256])
```
3. 使用巴氏距离计算两张图片的相似度:
```python
similarity = cv2.compareHist(hist1, hist2, cv2.HISTCMP_BHATTACHARYYA)
```
其中,相似度值越接近 1,表示两张图片越相似;相似度值越接近 0,表示两张图片越不相似。
完整代码如下:
```python
import cv2
img1 = cv2.imread('image1.jpg', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('image2.jpg', cv2.IMREAD_GRAYSCALE)
hist1 = cv2.calcHist([img1], [0], None, [256], [0, 256])
hist2 = cv2.calcHist([img2], [0], None, [256], [0, 256])
similarity = cv2.compareHist(hist1, hist2, cv2.HISTCMP_BHATTACHARYYA)
print('相似度:', similarity)
```
注意:此方法只能比较两张图片的颜色分布相似度,无法比较图片的内容是否相同。
阅读全文