基本圖形的繪制(基於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)

結果下圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM