python图像跟踪代码_python如何实现图像外边界跟踪 python实现图像外边界跟踪代码示例...
python如何实现图像外边界跟踪?本篇文章小编给大家分享一下python实现图像外边界跟踪代码示例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
share一些python实现的code
#!/usr/bin/env python
#coding=utf-8
import cv2
img = cv2.imread("trace_border2.bmp")
[img_h, img_w, img_channel] = img.shape
trace = []
start_x = 0
start_y = 0
gray = img[:,:,1]
for h in range(img_h):
for w in range(img_w):
if (gray[h,w] > 128):
gray[h,w] = 255
else:
gray[h,w] = 0
#python 跳出多重循环
#https://www.cnblogs.com/xiaojiayu/p/5195316.html
class getoutofloop(Exception): pass
try:
for h in range(img_h - 2):
for w in range(img_w - 2):
if gray[h,w] == 0:
start_x = w
start_y = h
raise getoutofloop
except getoutofloop:
pass
print("Start Point (%d %d)"%(start_x, start_y))
trace.append([start_x, start_y])
# 8邻域 顺时针方向搜索
neighbor = [[-1,-1],[0,-1],[1,-1],[1,0],[1,1],[0,1],[-1,1],[-1,0]]
neighbor_len = len(neighbor)
#先从当前点的左上方开始,
# 如果左上方也是黑点(边界点):
# 搜索方向逆时针旋转90 i-=2
# 否则:
# 搜索方向顺时针旋转45 i+=1
i = 0
cur_x = start_x + neighbor[i][0]
cur_y = start_y + neighbor[i][1]
is_contour_point = 0
try:
while not ((cur_x == start_x) and (cur_y == start_y)):
is_contour_point = 0
while is_contour_point == 0:
#neighbor_x = cur_x +
if gray[cur_y, cur_x] == 0:
is_contour_point = 1
trace.append([cur_x, cur_y])
i -= 2
if i < 0:
i += neighbor_len
else:
i += 1
if i >= neighbor_len:
i -= neighbor_len
#print(i)
cur_x = cur_x + neighbor[i][0]
cur_y = cur_y + neighbor[i][1]
except:
print("throw error")
for i in range(len(trace)-1):
cv2.line(img,(trace[i][0],trace[i][1]), (trace[i+1][0], trace[i+1][1]),(0,0,255),3)
cv2.imshow("img", img)
cv2.waitKey(10)
cv2.rectangle(img,(start_x, start_y),(start_x + 20, start_y + 20),(255,0,0),2)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyWindow("img")
搜索过程,红色标记线如下:
python图像跟踪代码_python如何实现图像外边界跟踪 python实现图像外边界跟踪代码示例...相关推荐
- python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序
python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...
- python有哪些代码_Python有哪些神一般的蜜汁操作?(附代码),
Python有哪些神一般的蜜汁操作?(附代码), 有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python; 玩跳一跳?我 ...
- 初学者怎样看懂python代码_Python零基础入门-(如何让人读懂你的代码)文档注释
目标注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释)以 # 开头,# 右边的所有 ...
- python识别数字程序_python实现识别手写数字 python图像识别算法
写在前面 这一段的内容可以说是最难的一部分之一了,因为是识别图像,所以涉及到的算法会相比之前的来说比较困难,所以我尽量会讲得清楚一点. 而且因为在编写的过程中,把前面的一些逻辑也修改了一些,将其变得更 ...
- 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...
- 怎么用python画个电脑_python语言还是java如何用python画爱心
用python绘制爱心的基本步骤如下: 002pc.com对<python语言还是java如何用python画爱心>总结来说,为我们学习Python很实用. 首先先下载安装好python程 ...
- python底层源码_Python每天一分钟:解析python底层类的实现原理——竟然是type()
上一篇文章中,我们介绍了使用python的type()函数来动态创建用户类的详细过程,读者可以自行翻看:Python每天一分钟:类定义进阶/炫技-使用type函数动态创建类. 那么本文将进一步介绍py ...
- python编程入门免费_python编程入门 零基础学习Python基础(附带最新免费教程)...
本篇是面向编程零基础学员的Python入门教程,内容涵盖了Python的基础知识和初步应用.以较轻快的风格,向零基础学习者介绍了一门时下比较流行的.并且用途比较广泛的编程语言.同时,其语法简洁而清晰, ...
- python语言基本认识_Python基础语法合集——了解python
1. 了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象的编程技术).动态数据类型的交互式(可在命令行中通过Python ...
- python入门教材论坛_Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
PythonShare ============= *Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐* ------------------------ 本文 ...
最新文章
- 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1124. 骑马修栅栏:欧拉路径、dfs
- 今年美国广告程序化购买支出将超252亿美元
- [云炬创业基础笔记]第十一章创业计划书测试8
- Nagios+pnp4nagios+rrdtool 安装配置nagios(一)
- shell批量创建随机文件名格式文件
- Codeforces Round #727 (Div. 2) E. Game with Cards dp + 思维
- 楼天成夺Facebook黑客杯季军,已被Facebook录用得到美国绿卡
- Sublime格式化代码快捷键
- 没有肉眼可见的躯体,却丝毫不妨碍放飞灵魂
- 【shell批量删除ovs网桥命令】
- APP设计尺寸规范大全,APP界面设计新手教程【官方版】
- 除了Jira、禅道还有哪些更好的敏捷开发过程管理平台?
- 50道正则表达式面试题目,你能答对几道?
- 学生免费领取阿里云ECS云服务器并使用全过程(部署个人博客项目)
- MYSQL事务原理分析
- 华为交换机重制_FAQ:5700能否通过reset按键清空配置
- 机械手使用者坐标系和工具坐标系_EPSON机械手 工具坐标系的标定
- 高等数学——二重积分
- 恢复计算机在哪,电脑360文件恢复工具在哪
- 自适应网站(不用任何框架实现)