python学习(2)图像处理指令解析

(11)图像的阈值分割

skimage.filters.threshold_otsu(imagenbins=256):

from skimage import data,filters
import matplotlib.pyplot as plt
image = data.camera()
thresh = filters.threshold_otsu(image)   #返回一个阈值
dst =(image <= thresh)*1.0   #根据阈值进行分割
以下几种阈值取值类似:
thresh = filters.threshold_yen(image) 
thresh = filters.threshold_li(image)
thresh = filters.threshold_isodata(image) 取值跟otsu一样
还有一种较为复杂的:

threshold_adaptive

调用函数为:

skimage.filters.threshold_adaptive(imageblock_sizemethod='gaussian')

block_size: 块大小,指当前像素的相邻区域大小,一般是奇数(如3,5,7。。。)

method: 用来确定自适应阈值的方法,有'mean', 'generic', 'gaussian' 和 'median'。省略时默认为gaussian

该函数直接访问一个阈值后的图像,而不是阈值。

(12)基本图形的绘制

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]

若对线绘成白线,则:

img[rr, cc] =255

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

skimage.draw.set_color(imgcoordscolor)

color取[r,g,b] 比如蓝色[0,0,255]

2、画圆

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

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

rr, cc=draw.circle(150,150,50)
draw.set_color(img,[rr,cc],[255,0,0])

3、多边形

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

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

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])


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值