python数字图像处理之基本图形的绘制

作者:denny402 时间:2021-10-21 05:29:42 

引言

图形包括线条、圆形、椭圆形、多边形等。

在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了。

1、画线条

函数调用格式为:

skimage.draw.line(r1,c1,r2,c2)

r1,r2: 开始点的行数和结束点的行数

c1,c2: 开始点的列数和结束点的列数

返回当前绘制图形上所有点的坐标,如:

rr, cc =draw.line(1, 5, 8, 2)

表示从(1,5)到(8,2)连一条线,返回线上所有的像素点坐标[rr,cc]

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc =draw.line(1, 150, 470, 450)
img[rr, cc] =255
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

如果想画其它颜色的线条,则可以使用set_color()函数,格式为:

skimage.draw.set_color(img, coords, color)

例:

draw.set_color(img,[rr,cc],[255,0,0])

则绘制红色线条。

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc =draw.line(1, 150, 270, 250)
draw.set_color(img,[rr,cc],[0,0,255])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

2、画圆

函数格式:skimage.draw.circle(cy, cx, radius)

cy和cx表示圆心点,radius表示半径

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.circle(150,150,50)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

3、多边形

函数格式:skimage.draw.polygon(Y,X)

Y为多边形顶点的行集合,X为各顶点的列值集合。

from skimage import draw,data
import matplotlib.pyplot as plt
import numpy as np
img=data.chelsea()
Y=np.array([10,10,60,60])
X=np.array([200,400,400,200])
rr, cc=draw.polygon(Y,X)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

我在此处只设置了四个顶点,因此是个四边形。

4、椭圆

格式:skimage.draw.ellipse(cy, cx, yradius, xradius)

cy和cx为中心点坐标,yradius和xradius代表长短轴。

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.ellipse(150, 150, 30, 80)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

5、贝塞儿曲线

格式:skimage.draw.bezier_curve(y1,x1,y2,x2,y3,x3,weight)

y1,x1表示第一个控制点坐标

y2,x2表示第二个控制点坐标

y3,x3表示第三个控制点坐标

weight表示中间控制点的权重,用于控制曲线的弯曲度。

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.bezier_curve(150,50,50,280,260,400,2)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

6、画空心圆

和前面的画圆是一样的,只是前面是实心圆,而此处画空心圆,只有边框线。

格式:skimage.draw.circle_perimeter(yx,yc,radius)

yx,yc是圆心坐标,radius是半径

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.circle_perimeter(150,150,50)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

7、空心椭圆

格式:skimage.draw.ellipse_perimeter(cy, cx, yradius, xradius)

cy,cx表示圆心

yradius,xradius表示长短轴

from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.ellipse_perimeter(150, 150, 30, 80)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)

python数字图像处理之基本图形的绘制

来源:https://www.cnblogs.com/denny402/p/5131406.html

标签:python,数字图像,图形绘制
0
投稿

猜你喜欢

  • SQL Server 2000里的数据类型

    2011-06-11 14:07:00
  • vue2/vue3路由权限管理的方法实例

    2024-05-29 22:28:54
  • mysql用户创建与授权的简单实例

    2024-01-18 00:20:18
  • python面向对象_详谈类的继承与方法的重载

    2021-03-21 08:38:18
  • 如何使用Maxwell实时同步mysql数据

    2024-01-18 01:43:23
  • 一个取图片尺寸的类,支持jpg,gif,png

    2007-10-18 10:25:00
  • Tensorflow使用tfrecord输入数据格式

    2022-06-18 22:55:40
  • 树莓派4B+opencv4+python 打开摄像头的实现方法

    2021-05-04 12:09:37
  • 大内存SQL Server数据库的加速剂

    2009-03-06 14:18:00
  • Python实现并行抓取整站40万条房价数据(可更换抓取城市)

    2021-09-24 10:56:43
  • ASP 禁用清除页面缓存

    2008-07-21 12:43:00
  • 详解Oracle数据库各类控制语句的使用

    2024-01-13 16:49:00
  • perl 调试命令的相关知识小结

    2022-10-01 14:09:48
  • ASP编码问题的深入研究与解决方案(MSDN)

    2007-10-25 11:54:00
  • python机器学习Github已达8.9Kstars模型解释器LIME

    2022-06-21 13:38:28
  • 在python list中筛选包含字符的字段方式

    2023-12-17 17:02:06
  • python等待10秒执行下一命令的方法

    2022-02-25 00:40:03
  • python统计文本文件内单词数量的方法

    2021-09-20 17:51:55
  • Python检查 云备份进程是否正常运行代码实例

    2023-07-08 23:59:05
  • asp如何做一个检索结果带链接的检索?

    2010-07-11 21:15:00
  • asp之家 网络编程 m.aspxhome.com