OpenCV构建交互式图像距离测量工具

在计算机视觉和图形学应用中,准确测量图像上的点之间距离是一项常见且重要的任务。本篇技术博客将详细介绍如何利用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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VisionX Lab

你的鼓励将是我更新的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值