zoukankan      html  css  js  c++  java
  • 基本图形的绘制(基于skimage)

    图形包括线条、圆形、椭圆形、多边形等。在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了。

    一  线条

    函数调用格式:

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

    • r1,r2: 开始点的行数和结束点的行数
    • c1,c2: 开始点的列数和结束点的列数
    • 返回当前绘制图形上所有点的坐标
    from skimage import draw,data
    import matplotlib.pyplot as plt
    img=data.astronaut()
    rr, cc =draw.line(1, 150, 470, 450)#表示从(1,150)到(470,450)连一条线,返回线上所有的像素点坐标[rr,cc]
    img[rr, cc] =255
    plt.imshow(img,plt.cm.gray)

    结果如下图所示:

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

                   skimage.draw.set_color(imgcoordscolor)

    from skimage import draw,data
    import matplotlib.pyplot as plt
    img=data.astronaut()
    rr, cc =draw.line(1, 150, 470, 450)#表示从(1,150)到(470,450)连一条线,返回线上所有的像素点坐标[rr,cc]
    draw.set_color(img,[rr,cc],[0,0,255])
    plt.imshow(img,plt.cm.gray)

    结果如下图所示:

    二 圆

    函数格式:skimage.draw.circle(cycxradius)

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

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

    结果如下图所示:

    三 多边形

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

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

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

    结果如下所示:

    四 椭圆

    格式:skimage.draw.ellipse(cycxyradiusxradius)

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

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

    结果如下图所示:

    五 贝塞儿曲线

    格式: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.astronaut()
    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)

    结果如下所示:

    六 空心圆

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

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

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

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

    结果如下所示:

    七 空心椭圆

    格式:skimage.draw.ellipse_perimeter(cycxyradiusxradius)

    cy,cx表示圆心

    yradius,xradius表示长短轴

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

    结果下图所示:

  • 相关阅读:
    严重: Parse error in application web.xml file at jndi:/localhost/ipws/WEBINF/web.xml java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml
    Failed to install .apk on device 'emulator5554': timeout解决方法
    java.lang.NoClassDefFoundError:org.jsoup.Jsoup
    Conversion to Dalvik format failed: Unable to execute dex:解决方法
    apache Digest: generating secret for digest authentication ...
    Description Resource Path Location Type Project has no default.properties file! Edit the project properties to set one.
    android service随机自启动
    MVC3 安装部署
    EF 4.3 CodeBased 数据迁移演练
    SQL Server 2008开启sa账户
  • 原文地址:https://www.cnblogs.com/Terrypython/p/9958756.html
Copyright © 2011-2022 走看看