读取图片灰度值区间python_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘

python opencv

1,读取图像

2,图像变矩阵

3,图像转灰度图像

4,彩色图像是3D数组

5,灰度图像是2D数组

6,彩色图像是3个2D数组

7,彩色图像有3个通道,提取3个通道

#Copyright

91c8145516c9b9d0b7a3be8eaf421b8b.png

通道0

312ee55682b2dd59c6da0de565c13880.png

通道1

2988692aa6cafd4230a1c8c9384c8426.png

通道2

1194c487dd4d0e5395efe033c746fea8.png

总结:

1个彩色图像,可以分解为3个灰度图像

3个灰度图像合起来是一个彩色图像

通道2图像,观察到花很白。如果

图像很白,说明对应的像素值大。

所以,做一个二值处理。

当像素值大于180,显示255

当像素值小于等于180,显示为0

created[created>180]=255
created[created<=180]=0

63a67114f298937bc5dae5c316b5a7d9.png

这个图像就是2值图像。

什么是2值图像,就是里面只有黑和白。

通道3变成了2值图像以后,有什么变化。

在通道3,

看到有花,有枝条,有朦胧的一个背景。

在二值图像,

就看到了花。

花尾巴部分,变成了白色,原来是灰色。

枝条没有了。

朦胧的背景也没有了

所以,二值图像,消除了枝条。

消除了朦胧的背景。

只显示了我们关心的花。

仔细观察图像变化,很重要!

对于二值图像,显示边缘。

什么是边缘。

举例:

000011100

左边连续的0,都是黑

所以0-0=0

右边-左边

01

左边是0,右边是1

这里就是边缘了

右边-左边=1

111连续的1,都是白色

10

这里是边缘,因为从1变0

00

都是黑

按照这个道理。

修改二值图像,提取边缘

for i in range(0,rows):
    for j in range(0,cols-1):
        #created[i,j]=created[i,j+1]-created[i,j]# 0-0 255-255 255-0 0-255
        if(created[i,j+1]<=created[i,j]):
            created[i,j]=0
        else:
            created[i,j]=255

21d14afd38601a9465d8d5c61735c52c.png

现在图像里面,只有一些白色的线条。

白色的面积小了很多了。

而且这些白色线条,组成了花的轮廓。

for 

bda4e2393b11b8c02599180c70d6f99a.png

读者可以更换其他图像试试,看看效果

总结:

对图像处理的步骤

1,彩色图像

2,提取3个通道

3,把第三通道的图像做二值化,阈值自己可以调整的

4,把二值化图像,提取了边缘

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值