opencv实现回形遍历像素算法
作者:ancy_i_cv 发布时间:2021-12-26 01:49:30
标签:opencv,遍历,算法
本文实例为大家分享了opencv实现回形遍历像素算法的具体代码,供大家参考,具体内容如下
代码实现
# -*- coding:utf-8 -*-
import cv2
import numpy as np
cv2.namedWindow('img', 0)
def traversePixelByCycloidLine(image):
"""
从一副灰度图像的中心开始向边缘按回形线的方式遍历所有像素,每个像素只能访问一次。
我目前实现了基本的算法, 但存在以下问题:
1) 只支持方阵, 且行列为奇数
2) 只实现, 代码没整理
"""
h, w = image.shape[:2]
assert h == w and h % 2 == 1, '只支持方阵, 且行列为奇数'
center_x, center_y = [w // 2, h // 2]
traverse_num = h * w
cycloid_num = 0
value = 1
while True:
for i in range(cycloid_num * 2 + 1):
if value >= traverse_num:
return image
center_x = center_x + 1
image[center_y, center_x] = 255
value += 1
cv2.imshow('img', image)
cv2.waitKey(33)
for i in range(cycloid_num * 2 + 1):
if value >= traverse_num:
return image
center_y = center_y + 1
image[center_y, center_x] = 255
value += 1
cv2.imshow('img', image)
cv2.waitKey(33)
for i in range(cycloid_num * 2 + 2):
if value >= traverse_num:
return image
center_x = center_x - 1
image[center_y, center_x] = 255
value += 1
cv2.imshow('img', image)
cv2.waitKey(33)
for i in range(cycloid_num * 2 + 2):
if value >= traverse_num:
return image
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
while True:
image = np.zeros((image_wh, image_wh, 3), dtype=np.uint8)
traversePixelByCycloidLine(image)
效果展示
来源:https://blog.csdn.net/u014072827/article/details/114373552


猜你喜欢
- 前言今天帮师兄赶在deadline之前画论文的图,现学现卖很是刺激,现把使用matplotlib的子库pyplot画折线图和柱状图的代码记录
- 1. set bakupfolder=F:\backup\ 备份文件存放于目录F:\backup\ (此目录需要事先建好) 2. 默认每个数
- 这篇主要探讨 ** 和 * 前缀运算符,**在变量之前使用的*and **运算符.一个星(*):表示接收的参数作为元组来处理两个星(**):
- 自从SQL Server 2005推出后,因为有了更好的性能,所以有很多与SQL Server 2000相关的应用程序需要升级到这个版本。但
- mysql蠕虫复制,简单来说就是将查询出来的数据不断的新增插入到指定的数据表中。通常情况,mysql蠕虫复制时用来测试表压力。下面我们就结合
- 以下的实例为去除指定表中数据类型是VARCHAR,CHAR,NVARCHAR的字段值中的不可见字符。 注释:此处只去掉前后的不可见字符,不包
- vue计算属性的缓存computed用法计算属性的缓存<!DOCTYPE html><html lang="en
- 1.学习sql之前回忆一下,什么是变量?变量:能存储数据的值。变量是一块内存空间的表示。数组一连串空间变量是存储数据的容器(通俗讲)2.变量
- 因为这两天在学习深度学习需要用到ubuntu+python3.6版本,所以就按照网上的教学安装,但是ubuntu16.04自带的是pytho
- 目录背景实现工具打包调用总结众所周知,Golang 适合写 CLI 工具,但你可能还不知道 Golang 还可以打包配置文件。背景最近在写一
- python协程线程和进程的操作是由程序触发系统接口,最后的执行者是系统;协程的操作则是程序员。协程存在的意义:对于多线程应用,CPU通过切
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN&q
- 在django中,ORM(对象关系映射器—object-relational mapper)任务是:模型化数据库,创建数
- 环境:windwos 10(1511) 64bit、mysql 5.7.14一、下载mysql1. 在浏览器里打开mysql的官网http:
- 地理图表什么是地理图表?地理图表有什么作用?地理图表主要应用在那些领域?其实这些问题看看下面的实例图形就已不攻自破了,地理图表一看首先就是地
- zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:1.示例1:x = [1
- 1.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.获取所有
- 在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理。1、to_char()函数的用法1.1、将时间日
- 本文为大家分享了mysql 8.0.12 解压版安装教程,供大家参考,具体内容如下1、首先在官网上下载mysql8.0.12的压缩包:下载地
- 前言学习Python的过程中,我们会遇到Excel的各种问题。下面这篇文章主要给大家介绍了关于python对excel进行数据剔除操作的相关