怎么用Python OpenCV寻找两条曲线直接的最短距离
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍了怎么用Python OpenCV寻找两条曲线直接的最短距离的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python OpenCV寻找两条曲线直接
千家信息网最后更新 2025年01月16日怎么用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安全错误
数据库的锁怎样保障安全
光明区光纤网络技术开发动态
华为公司软件开发员简历
两分钟网络安全介绍
怎么注册服务器和域名
redis+清楚指定数据库
优酷视频护苗网络安全课件
七中网络安全教育
一台电脑访问两个服务器
江苏沃购网络技术有限南京
美团软件开发实习招聘流程
人工智能和网络安全哪个好学
电力监控系统网络安全 指南
北京万户网络技术公司正规吗
KOBE视频软件开发
数据库怎么增加多个字段的值
福建 网络安全培训
信息科 网络安全监测记录
如何制作vfp数据库文件
涛思数据库转储
猫王互联网络科技有限公司
网际数据库浏览器
河北项目售后管理软件开发
服务器信息安全安全
超市管理数据库系统分析
我的世界pc有什么服务器
你不知道的软件开发冷知识
网络技术基础一般学什么
web前端 软件开发
安卓软件开发平台不显示不出来字
深海水族馆服务器