怎么用Python OpenCV寻找两条曲线直接的最短距离
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍了怎么用Python OpenCV寻找两条曲线直接的最短距离的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python OpenCV寻找两条曲线直接
千家信息网最后更新 2025年02月23日怎么用Python OpenCV寻找两条曲线直接的最短距离
这篇文章主要介绍了怎么用Python OpenCV寻找两条曲线直接的最短距离的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python OpenCV寻找两条曲线直接的最短距离文章都会有所收获,下面我们一起来看看吧。
import numpy as npimport mathimport cv2def cal_pt_distance(pt1, pt2): dist = math.sqrt(pow(pt1[0]-pt2[0],2) + pow(pt1[1]-pt2[1],2)) return distfont = cv2.FONT_HERSHEY_SIMPLEXimg = cv2.imread('01.png')#cv2.imshow('src',img)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)gray = cv2.GaussianBlur(gray, (3,3), 0)ret,thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)image,contours,hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)#thresh,contours,hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)flag = FalseminDist = 10000minPt0 = (0,0)minPt1 = (0,0)for i in range(0,len(contours[1])):#遍历所有轮廓 pt = tuple(contours[1][i][0]) #print(pt) min_dis = 10000 min_pt = (0,0) #distance = cv2.pointPolygonTest(contours[1], pt, False) for j in range(0,len(contours[0])): pt2 = tuple(contours[0][j][0]) distance = cal_pt_distance(pt, pt2) #print(distance) if distance < min_dis: min_dis = distance min_pt = pt2 min_point = pt if min_dis < minDist: minDist = min_dis minPt0 = min_point minPt1 = min_pt temp = img.copy() cv2.drawContours(img,contours,1,(255,255,0),1) cv2.line(temp,pt,min_pt,(0,255,0),2,cv2.LINE_AA) cv2.circle(temp, pt,5,(255,0,255),-1, cv2.LINE_AA) cv2.circle(temp, min_pt,5,(0,255,255),-1, cv2.LINE_AA) cv2.imshow("img",temp) if cv2.waitKey(1)&0xFF ==27: #按下Esc键退出 flag = True break if flag: breakcv2.line(img,minPt0,minPt1,(0,255,0),2,cv2.LINE_AA)cv2.circle(img, minPt0,3,(255,0,255),-1, cv2.LINE_AA)cv2.circle(img, minPt1,3,(0,255,255),-1, cv2.LINE_AA)cv2.putText(img,("min_dist=%0.2f"%minDist), (minPt1[0],minPt1[1]+15), font, 0.7, (0,255,0), 2)cv2.imshow('result', img)cv2.imwrite('result.png',img)cv2.waitKey(0)cv2.destroyAllWindows()
原图:
结果图:
关于"怎么用Python OpenCV寻找两条曲线直接的最短距离"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"怎么用Python OpenCV寻找两条曲线直接的最短距离"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
曲线
短距离
知识
内容
篇文章
价值
原图
操作简单
文章
易懂
更多
看吧
结果
行业
资讯
资讯频道
轮廓
频道
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
代号探戈第四关服务器核心
网络技术专业学生的实践金立
三江县软件开发
中航信 数据库工程师
煤矿隐患数据库
网络安全法主题教育作文
兼顾网络安全性的架构
网络数据库技术index
海外高速mysql服务器
发达国家网络安全
金税导入数据库
大龄软件开发人员
小火箭服务器节点
数据库如何处理分页查询
软件开发技术概述
计算机网络安全表格
作文我身边的网络安全故事
文本 数据库 markdown
合肥正规网络技术咨询介绍
ajax获取服务器当前时间
计算机网络技术属于什么系科
湖州云软件开发
英国软件开发工资多少钱
郴州电脑软件开发学费多少
自主可控数据库概念股
网络安全条例
云南软件开发科技公司
服务器连接错误原因
信息网络安全类产品
网络安全nta