Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?

Cập nhật lần cuối vào ngày 1 tháng 7 năm 2021

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?

Bạn có đoán rằng tôi là một nhà sưu tập tem không?

Đùa thôi. Tôi không.

Nhưng hãy để Lừa chơi một trò chơi nhỏ giả vờ.

Hãy để giả vờ rằng chúng ta có một bộ dữ liệu lớn về hình ảnh tem. Và chúng tôi muốn chụp hai hình ảnh tem tùy ý và so sánh chúng để xác định xem chúng có giống hệt nhau hay gần giống nhau theo một cách nào đó.

Nói chung, chúng ta có thể thực hiện điều này theo hai cách.

Phương pháp đầu tiên là sử dụng băm nhạy cảm địa phương, mà tôi sẽ trình bày trong một bài đăng trên blog sau.

Phương pháp thứ hai là sử dụng các thuật toán như lỗi bình phương trung bình (MSE) hoặc Chỉ số tương tự cấu trúc (SSIM).

Trong bài đăng trên blog này, tôi sẽ chỉ cho bạn cách sử dụng Python để so sánh hai hình ảnh bằng cách sử dụng lỗi bình phương trung bình và chỉ số tương tự cấu trúc.

  • Cập nhật tháng 7 năm 2021: Cập nhật nhập SSIM từ SCIKIT-IMAGE theo bản cập nhật API mới nhất. Đã thêm phần về các phương pháp so sánh hình ảnh thay thế, bao gồm các tài nguyên trên mạng Xiêm. Updated SSIM import from scikit-image per the latest API update. Added section on alternative image comparison methods, including resources on siamese networks.

Bộ dữ liệu ví dụ của chúng tôi

Hãy để bắt đầu bằng cách xem xét bộ dữ liệu ví dụ của chúng tôi:

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?
Hình 1: Bộ dữ liệu hình ảnh ví dụ của chúng tôi. Trái: Hình ảnh gốc. Giữa: Hình ảnh gốc với điều chỉnh độ tương phản. Phải: Hình ảnh gốc với lớp phủ photoshop. Our example image dataset. Left: The original image. Middle: The original image with contrast adjustments. Right: The original image with Photoshopped overlay.

Ở đây bạn có thể thấy rằng chúng tôi có ba hình ảnh: (trái) hình ảnh gốc của chúng tôi về những người bạn của chúng tôi từ Jurassic Park sẽ tham gia chuyến lưu diễn đầu tiên (và duy nhất) của họ, (giữa) hình ảnh gốc với các điều chỉnh độ tương phản được áp dụng cho nó và (phải), Hình ảnh gốc với logo Công viên kỷ Jura được phủ lên trên nó thông qua thao tác Photoshop.

Bây giờ, nó rõ ràng với chúng tôi rằng các hình ảnh trái và giữa có nhiều thứ tương tự như nhau - cái ở giữa giống như hình đầu tiên, chỉ có nó là Dark Darker.

Nhưng như chúng tôi sẽ tìm ra, lỗi bình phương trung bình thực sự sẽ nói hình ảnh được photoshop giống với bản gốc hơn so với hình ảnh giữa với các điều chỉnh độ tương phản. Khá kỳ lạ, phải không?

Lỗi bình phương trung bình so với thước đo tương tự cấu trúc

Hãy cùng xem phương trình lỗi bình phương trung bình:

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?
Phương trình 1: Lỗi bình phương trung bình Mean Squared Error

Mặc dù phương trình này có thể trông phức tạp, tôi hứa với bạn nó không.

Và để chứng minh điều này, tôi sẽ chuyển đổi phương trình này thành hàm Python:

def mse(imageA, imageB):
	# the 'Mean Squared Error' between the two images is the
	# sum of the squared difference between the two images;
	# NOTE: the two images must have the same dimension
	err = np.sum((imageA.astype("float") - imageB.astype("float")) ** 2)
	err /= float(imageA.shape[0] * imageA.shape[1])
	
	# return the MSE, the lower the error, the more "similar"
	# the two images are
	return err

Vì vậy, bạn có nó - lỗi bình phương trung bình chỉ trong bốn dòng mã python một khi bạn lấy ra các bình luận.

Hãy để xé nó ra và xem những gì đang diễn ra:

  • Trên dòng 7, chúng tôi xác định hàm mse của chúng tôi, có hai đối số: imageAimageB (nghĩa là các hình ảnh chúng tôi muốn so sánh về độ tương tự).Line 7 we define our mse function, which takes two arguments: imageA and imageB (i.e. the images we want to compare for similarity).
  • Tất cả các công việc thực sự được xử lý trên dòng 11. Đầu tiên chúng tôi chuyển đổi các hình ảnh từ các số nguyên 8 bit không dấu thành điểm nổi, theo cách đó chúng tôi không gặp phải bất kỳ vấn đề nào với các hoạt động mô đun. Sau đó, chúng tôi có sự khác biệt giữa các hình ảnh bằng cách trừ cường độ pixel. Tiếp theo, chúng tôi vuông sự khác biệt này (do đó có nghĩa là lỗi bình phương, và cuối cùng tổng hợp chúng.Line 11. First we convert the images from unsigned 8-bit integers to floating point, that way we don’t run into any problems with modulus operations “wrapping around”. We then take the difference between the images by subtracting the pixel intensities. Next up, we square these difference (hence mean squared error, and finally sum them up.
  • Dòng 12 xử lý giá trị trung bình của lỗi bình phương trung bình. Tất cả những gì chúng tôi đang làm là chia tổng bình phương của chúng tôi cho tổng số pixel trong hình ảnh. handles the mean of the Mean Squared Error. All we are doing is dividing our sum of squares by the total number of pixels in the image.
  • Cuối cùng, chúng tôi trả lại MSE của chúng tôi cho người gọi một dòng 16.Line 16.

MSE đã chết đơn giản để thực hiện - nhưng khi sử dụng nó cho sự tương đồng, chúng ta có thể gặp vấn đề. Một chính là khoảng cách lớn giữa cường độ pixel không nhất thiết có nghĩa là nội dung của hình ảnh là khác nhau đáng kể. Tôi sẽ cung cấp một số bằng chứng cho tuyên bố đó sau trong bài đăng này, nhưng trong lúc này, hãy nói với nó cho nó.

Điều quan trọng cần lưu ý là giá trị 0 cho MSE cho thấy sự tương đồng hoàn hảo. Một giá trị lớn hơn một ngụ ý ít giống nhau hơn và sẽ tiếp tục tăng lên khi sự khác biệt trung bình giữa cường độ pixel cũng tăng.

Để khắc phục một số vấn đề liên quan đến MSE để so sánh hình ảnh, chúng tôi có chỉ số tương tự cấu trúc, được phát triển bởi Wang et al .:

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?
Phương trình 2: Chỉ số tương tự cấu trúc Structural Similarity Index

Phương pháp SSIM rõ ràng có liên quan nhiều hơn phương pháp MSE, nhưng ý chính là SSIM cố gắng mô hình hóa sự thay đổi nhận thức trong thông tin cấu trúc của hình ảnh, trong khi MSE thực sự ước tính các lỗi nhận thức. Có một sự khác biệt tinh tế giữa hai, nhưng kết quả là kịch tính.

Hơn nữa, phương trình trong phương trình 2 được sử dụng để so sánh hai cửa sổ (nghĩa là các mẫu phụ nhỏ) thay vì toàn bộ hình ảnh như trong MSE. Làm điều này dẫn đến một cách tiếp cận mạnh mẽ hơn có thể giải thích cho những thay đổi trong cấu trúc của hình ảnh, thay vì chỉ là sự thay đổi nhận thức.

Các tham số cho phương trình 2 bao gồm vị trí (x, y) của cửa sổ n x n trong mỗi hình ảnh, giá trị trung bình của cường độ pixel theo hướng x và y, phương sai của cường độ theo hướng x và y, cùng với hiệp phương sai.

Không giống như MSE, giá trị SSIM có thể thay đổi giữa -1 và 1, trong đó 1 biểu thị sự tương đồng hoàn hảo.

May mắn thay, như bạn sẽ thấy, chúng tôi không phải thực hiện phương pháp này bằng tay vì hình ảnh Scikit đã có một triển khai sẵn sàng cho chúng tôi.

Hãy để đi trước và nhảy vào một số mã.

# import the necessary packages
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import cv2

Chúng tôi bắt đầu bằng cách nhập các gói mà chúng tôi sẽ cần - matplotlib để vẽ đồ thị, nhảm nhí để xử lý số và

# import the necessary packages
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import cv2
0 cho các ràng buộc OpenCV của chúng tôi. Phương pháp chỉ số tương tự cấu trúc của chúng tôi đã được thực hiện cho chúng tôi bằng hình ảnh Scikit, vì vậy chúng tôi sẽ chỉ sử dụng triển khai của chúng.

def mse(imageA, imageB):
	# the 'Mean Squared Error' between the two images is the
	# sum of the squared difference between the two images;
	# NOTE: the two images must have the same dimension
	err = np.sum((imageA.astype("float") - imageB.astype("float")) ** 2)
	err /= float(imageA.shape[0] * imageA.shape[1])
	
	# return the MSE, the lower the error, the more "similar"
	# the two images are
	return err

def compare_images(imageA, imageB, title):
	# compute the mean squared error and structural similarity
	# index for the images
	m = mse(imageA, imageB)
	s = ssim(imageA, imageB)

	# setup the figure
	fig = plt.figure(title)
	plt.suptitle("MSE: %.2f, SSIM: %.2f" % (m, s))

	# show first image
	ax = fig.add_subplot(1, 2, 1)
	plt.imshow(imageA, cmap = plt.cm.gray)
	plt.axis("off")

	# show the second image
	ax = fig.add_subplot(1, 2, 2)
	plt.imshow(imageB, cmap = plt.cm.gray)
	plt.axis("off")

	# show the images
	plt.show()

Dòng 7-16 Xác định phương pháp mse của chúng tôi, mà bạn đã quen thuộc. define our mse method, which you are already familiar with.

Sau đó, chúng tôi xác định hàm

# import the necessary packages
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import cv2
2 trên dòng 18 mà chúng tôi sẽ sử dụng để so sánh hai hình ảnh bằng cả MSE và SSIM. Hàm mse có ba đối số: imageAimageB, đó là hai hình ảnh chúng ta sẽ so sánh, và sau đó là
# import the necessary packages
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import cv2
6 của hình của chúng ta. Line 18 which we’ll use to compare two images using both MSE and SSIM. The mse function takes three arguments: imageA and imageB, which are the two images we are going to compare, and then the
# import the necessary packages
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import cv2
6 of our figure.

Sau đó, chúng tôi tính toán MSE và SSIM giữa hai hình ảnh trên dòng 21 và 22. Lines 21 and 22.

Dòng 25-39 Xử lý một số âm mưu matplotlib đơn giản. Chúng tôi chỉ cần hiển thị MSE và SSIM được liên kết với hai hình ảnh chúng tôi đang so sánh. handle some simple matplotlib plotting. We simply display the MSE and SSIM associated with the two images we are comparing.

# load the images -- the original, the original + contrast,
# and the original + photoshop
original = cv2.imread("images/jp_gates_original.png")
contrast = cv2.imread("images/jp_gates_contrast.png")
shopped = cv2.imread("images/jp_gates_photoshopped.png")

# convert the images to grayscale
original = cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)
contrast = cv2.cvtColor(contrast, cv2.COLOR_BGR2GRAY)
shopped = cv2.cvtColor(shopped, cv2.COLOR_BGR2GRAY)

Dòng 43-45 Xử lý tải hình ảnh của chúng tôi TẮT Đĩa bằng OpenCV. Chúng tôi sẽ sử dụng hình ảnh gốc của chúng tôi (dòng 43), hình ảnh được điều chỉnh tương phản (dòng 44) và hình ảnh được photoshop của chúng tôi với logo Jurassic Park được phủ lên (dòng 45). handle loading our images off disk using OpenCV. We’ll be using our original image (Line 43), our contrast adjusted image (Line 44), and our Photoshopped image with the Jurassic Park logo overlaid (Line 45).

Sau đó, chúng tôi chuyển đổi hình ảnh của chúng tôi thành thang độ xám trên các dòng 48-50.Lines 48-50.

# initialize the figure
fig = plt.figure("Images")
images = ("Original", original), ("Contrast", contrast), ("Photoshopped", shopped)

# loop over the images
for (i, (name, image)) in enumerate(images):
	# show the image
	ax = fig.add_subplot(1, 3, i + 1)
	ax.set_title(name)
	plt.imshow(image, cmap = plt.cm.gray)
	plt.axis("off")

# show the figure
plt.show()

# compare the images
compare_images(original, original, "Original vs. Original")
compare_images(original, contrast, "Original vs. Contrast")
compare_images(original, shopped, "Original vs. Photoshopped")

Bây giờ, hình ảnh của chúng tôi đã được tải ra khỏi đĩa, hãy để cho họ hiển thị chúng. Trên các dòng 52-65, chúng tôi chỉ cần tạo ra một con số matplotlib, lặp lại từng hình ảnh của chúng tôi và thêm chúng vào cốt truyện của chúng tôi. Cốt truyện của chúng tôi sau đó được hiển thị cho chúng tôi trên dòng 65.Lines 52-65 we simply generate a matplotlib figure, loop over our images one-by-one, and add them to our plot. Our plot is then displayed to us on Line 65.

Cuối cùng, chúng ta có thể so sánh các hình ảnh của mình với nhau bằng cách sử dụng hàm

# import the necessary packages
from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import cv2
2 trên các dòng 68-70.Lines 68-70.

Chúng tôi có thể thực thi tập lệnh của mình bằng cách ban hành lệnh sau:

$ python compare.py

Kết quả

Khi tập lệnh của chúng tôi đã được thực thi, trước tiên chúng tôi nên xem trường hợp thử nghiệm của mình - so sánh hình ảnh gốc với chính nó:

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?
Hình 2: So sánh hai hình ảnh gốc với nhau. Comparing the two original images together.

Không vượt quá, hình ảnh gốc giống hệt với chính nó, với giá trị 0,0 cho MSE và 1,0 cho SSIM. Hãy nhớ rằng, khi MSE tăng hình ảnh ít giống nhau hơn, trái ngược với SSIM nơi các giá trị nhỏ hơn cho thấy độ tương tự ít hơn.

Bây giờ, hãy xem so sánh bản gốc với hình ảnh được điều chỉnh tương phản:

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?
Hình 3: So sánh hình ảnh ban đầu và độ tương phản được điều chỉnh. Comparing the original and the contrast adjusted image.

Trong trường hợp này, MSE đã tăng và SSIM giảm, ngụ ý rằng hình ảnh ít giống nhau hơn. Điều này thực sự đúng - việc điều chỉnh độ tương phản chắc chắn đã làm hỏng sự đại diện của hình ảnh.

Nhưng mọi thứ không thể thú vị cho đến khi chúng tôi so sánh hình ảnh gốc với lớp phủ được photoshop:

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?
Hình 4: So sánh hình ảnh lớp phủ ban đầu và photoshop. Comparing the original and Photoshopped overlay image.

So sánh hình ảnh gốc với lớp phủ Photoshop mang lại MSE 1076 và SSIM là 0,69.

Chờ giây lát.

MSE 1076 nhỏ hơn so với trước đó là 1401. Nhưng rõ ràng lớp phủ được photoshop khác nhau đáng kể so với điều chỉnh độ tương phản! Nhưng một lần nữa, đây là một hạn chế mà chúng ta phải chấp nhận khi sử dụng cường độ pixel thô trên toàn cầu.

Mặt khác, SSIM là trả về giá trị 0,69, thực sự nhỏ hơn 0,78 thu được khi so sánh hình ảnh gốc với hình ảnh được điều chỉnh tương phản.

Phương pháp so sánh hình ảnh thay thế

MSE và SSIM là phương pháp xử lý hình ảnh và tầm nhìn máy tính truyền thống để so sánh hình ảnh. Chúng có xu hướng hoạt động tốt nhất khi hình ảnh được căn chỉnh gần như hoàn hảo (nếu không, các vị trí và giá trị pixel sẽ không khớp với điểm số tương tự).

Một cách tiếp cận khác hoạt động tốt khi hai hình ảnh được chụp dưới các góc nhìn khác nhau, điều kiện ánh sáng, v.v. , một biến thể chính xác hơn của máy dò và mô tả SIFT phổ biến.

Hơn nữa, có những phương pháp tương tự hình ảnh dựa trên học tập sâu mà chúng ta có thể sử dụng, đặc biệt là các mạng Xiêm. Mạng Xiêm là những mô hình siêu mạnh mẽ có thể được đào tạo với rất ít dữ liệu để tính điểm tương tự hình ảnh chính xác. Siamese networks are super powerful models that can be trained with very little data to compute accurate image similarity scores.

Các hướng dẫn sau đây sẽ dạy bạn về các mạng Xiêm:

  1. Xây dựng các cặp hình ảnh cho các mạng Xiêm với Python
  2. Mạng Xiêm với Keras, Tensorflow và Deep Learning
  3. So sánh hình ảnh cho sự tương đồng bằng cách sử dụng mạng Xiêm, Keras và Tensorflow

Ngoài ra, các mạng Xiêm được đề cập chi tiết trong Đại học PyimageSearch.

Cái gì tiếp theo? Tôi đề nghị Đại học Pyimageearch.

Thông tin khóa học: 53+ Tổng số lớp • 57 giờ video hướng dẫn theo yêu cầu • Cập nhật lần cuối: Tháng 10 năm 2022
53+ total classes • 57+ hours of on-demand code walkthrough videos • Last updated: October 2022
★★★★★ 4.84 (128 Ratings) • 15,800+ Students Enrolled

Tôi tin tưởng mạnh mẽ rằng nếu bạn có một giáo viên phù hợp, bạn có thể làm chủ tầm nhìn máy tính và học sâu.

Bạn có nghĩ rằng việc học tầm nhìn máy tính và học tập sâu phải tốn thời gian, quá sức và phức tạp? Hoặc phải liên quan đến toán học và phương trình phức tạp? Hoặc yêu cầu bằng cấp về khoa học máy tính?

Đó không phải là trường hợp.

Tất cả những gì bạn cần để làm chủ tầm nhìn máy tính và học tập sâu là để ai đó giải thích mọi thứ với bạn bằng các thuật ngữ đơn giản, trực quan. Và đó chính xác là những gì tôi làm. Nhiệm vụ của tôi là thay đổi giáo dục và các chủ đề trí tuệ nhân tạo phức tạp được dạy như thế nào.

Nếu bạn nghiêm túc về việc học tầm nhìn máy tính, điểm dừng tiếp theo của bạn sẽ là Đại học Pyimageearch, tầm nhìn máy tính toàn diện nhất, học sâu và khóa học OpenCV trực tuyến ngày hôm nay. Tại đây, bạn sẽ học cách áp dụng thành công và tự tin tầm nhìn máy tính vào công việc, nghiên cứu và dự án của bạn. Tham gia với tôi trong Mastery Mastery Mastery.

Bên trong Đại học Pyimageearch, bạn sẽ tìm thấy:

  • ✓ Hơn 53 khóa học về tầm nhìn máy tính thiết yếu, học tập sâu và chủ đề OpenCV53+ courses on essential computer vision, deep learning, and OpenCV topics
  • ✓ 53+ Giấy chứng nhận hoàn thành53+ Certificates of Completion
  • ✓ Hơn 57 giờ video theo yêu cầu57+ hours of on-demand video
  • ✓ Các khóa học hoàn toàn mới được phát hành thường xuyên, đảm bảo bạn có thể theo kịp các kỹ thuật tiên tiếnBrand new courses released regularly, ensuring you can keep up with state-of-the-art techniques
  • ✓ Sổ tay Jupyter được cấu hình sẵn trong Google ColabPre-configured Jupyter Notebooks in Google Colab
  • ✓ Chạy tất cả các ví dụ mã trong trình duyệt web của bạn - hoạt động trên Windows, MacOS và Linux (không yêu cầu cấu hình môi trường Dev!)
  • ✓ Truy cập vào các repos mã tập trung cho tất cả hơn 450 hướng dẫn về pyimageearchcentralized code repos for all 450+ tutorials on PyImageSearch
  • ✓ Dễ dàng tải xuống một lần nhấp cho mã, bộ dữ liệu, mô hình được đào tạo trước, v.v. Easy one-click downloads for code, datasets, pre-trained models, etc.
  • ✓ Truy cập trên thiết bị di động, máy tính xách tay, máy tính để bàn, v.v.Access on mobile, laptop, desktop, etc.

Bấm vào đây để tham gia Đại học Pyimageearch

Bản tóm tắt

Trong bài đăng trên blog này, tôi đã chỉ cho bạn cách so sánh hai hình ảnh bằng Python.

Để thực hiện so sánh của chúng tôi, chúng tôi đã sử dụng các hàm có lỗi bình phương trung bình (MSE) và các hàm chỉ số tương tự cấu trúc (SSIM).

Mặc dù MSE nhanh hơn đáng kể để tính toán, nhưng nó có nhược điểm lớn của (1) được áp dụng trên toàn cầu và (2) chỉ ước tính các lỗi nhận thức của hình ảnh.

Mặt khác, SSIM, trong khi chậm hơn, có thể nhận thấy sự thay đổi trong thông tin cấu trúc của hình ảnh bằng cách so sánh các vùng địa phương của hình ảnh thay vì trên toàn cầu.

Vậy bạn nên sử dụng phương pháp nào?

Nó phụ thuộc.

Nói chung, SSIM sẽ cung cấp cho bạn kết quả tốt hơn, nhưng bạn sẽ mất một chút hiệu suất.

Nhưng theo tôi, lợi ích chính xác là rất đáng giá.

Chắc chắn cho cả MSE và SSIM một phát súng và tự mình xem!

Hướng dẫn how do you find the similarity between two images in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai hình ảnh trong python?

Tải xuống mã nguồn và hướng dẫn tài nguyên 17 trang miễn phí

Nhập địa chỉ email của bạn dưới đây để nhận .Zip của mã và hướng dẫn tài nguyên 17 trang miễn phí về tầm nhìn máy tính, openCV và học sâu. Bên trong bạn sẽ tìm thấy các hướng dẫn, sách, khóa học và thư viện được chọn bằng tay của tôi để giúp bạn thành thạo CV và DL!FREE 17-page Resource Guide on Computer Vision, OpenCV, and Deep Learning. Inside you'll find my hand-picked tutorials, books, courses, and libraries to help you master CV and DL!

Làm thế nào để bạn tìm thấy sự tương đồng giữa hai hình ảnh?

Sự tương đồng hình ảnh Sự giống nhau của hai hình ảnh được phát hiện bằng cách sử dụng gói Image ImageHash.Nếu hai hình ảnh giống hệt nhau hoặc gần như giống hệt nhau, chênh lệch ImageHash sẽ là 0. Hai hình ảnh giống nhau hơn nếu chênh lệch ImageHash gần hơn với 0.using the package “imagehash”. If two images are identical or almost identical, the imagehash difference will be 0. Two images are more similar if the imagehash difference is closer to 0.

Làm cách nào để so sánh hai hình ảnh ở các kích cỡ khác nhau Python?

Phương pháp giả đơn giản: Thay đổi kích thước hình ảnh lớn nhất để phù hợp với kích thước của hình ảnh nhỏ nhất và so sánh.Để so sánh hai hình ảnh I và J, thay đổi kích thước lớn nhất trong số chúng với kích thước của hình ảnh khác bằng cách sử dụng Lanczos 3 thùy, có sẵn thuận tiện trong PIL bằng cách thực hiện IMG1.Thay đổi kích thước (IMG2. Kích thước, hình ảnh.resize the largest image to match the size of the smallest image and compare. To compare two images i and j , resize the largest of them to the dimensions of the other one using 3-lobed lanczos, which is conveniently available in PIL by doing img1. resize(img2. size, Image.