在计算机视觉和图形学应用中,准确测量图像上的点之间距离是一项常见且重要的任务。本篇技术博客将详细介绍如何利用Python编程语言和OpenCV库构建一个交互式的图像距离测量工具。我们将通过编写一个名为ImageProcessor的类,让用户能够在图像上点击选取点,并实时显示两点间的实际距离(以毫米为单位)。下面让我们一起深入探讨代码实现及其核心功能。
一、代码结构概览
首先,我们来看看整个程序的主要组成部分:
import cv2
import numpy as np
class ImageProcessor:
def __init__(self, image_path, pixel_to_mm=0.3):
self.image_path = image_path
self.pixel_to_mm = pixel_to_mm
self.image = None
self.points = []
self.distances = []
self.load_image()
def load_image(self):
try:
self.image = cv2.imread(self.image_path)
except FileNotFoundError:
print("Image file not found.")
exit()
def calculate_distance(self, point1, point2):
pixel_distance = np.sqrt((point2[0] - point1[0]) ** 2 + (point2[1] - point1[1]) ** 2)
actual_distance = pixel_distance * self.pixel_to_mm
return pixel_distance, actual_distance
def draw_on_image(self):
img_copy = self.image.copy()
for i in range(len(self.points)):
cv2.circle(img_copy, self.points

最低0.47元/天 解锁文章
4942

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



