opencv实现回形遍历像素算法
本文实例为大家分享了opencv实现回形遍历像素算法的具体代码,供大家参考,具体内容如下
代码实现
#-*-coding:utf-8-*- importcv2 importnumpyasnp cv2.namedWindow('img',0) deftraversePixelByCycloidLine(image): """ 从一副灰度图像的中心开始向边缘按回形线的方式遍历所有像素,每个像素只能访问一次。 我目前实现了基本的算法,但存在以下问题: 1)只支持方阵,且行列为奇数 2)只实现,代码没整理 """ h,w=image.shape[:2] asserth==wandh%2==1,'只支持方阵,且行列为奇数' center_x,center_y=[w//2,h//2] traverse_num=h*w cycloid_num=0 value=1 whileTrue: foriinrange(cycloid_num*2+1): ifvalue>=traverse_num: returnimage center_x=center_x+1 image[center_y,center_x]=255 value+=1 cv2.imshow('img',image) cv2.waitKey(33) foriinrange(cycloid_num*2+1): ifvalue>=traverse_num: returnimage center_y=center_y+1 image[center_y,center_x]=255 value+=1 cv2.imshow('img',image) cv2.waitKey(33) foriinrange(cycloid_num*2+2): ifvalue>=traverse_num: returnimage center_x=center_x-1 image[center_y,center_x]=255 value+=1 cv2.imshow('img',image) cv2.waitKey(33) foriinrange(cycloid_num*2+2): ifvalue>=traverse_num: returnimage center_y=center_y-1 image[center_y,center_x]=255 value+=1 cv2.imshow('img',image) cv2.waitKey(33) cycloid_num+=1 image_wh=11 whileTrue: image=np.zeros((image_wh,image_wh,3),dtype=np.uint8) traversePixelByCycloidLine(image)
效果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。