zoukankan      html  css  js  c++  java
  • opencv学习记录之获取图像单通道

    RGB的图像可以拆分出R通道,G通道和B通道。

    这里只用了一个简单的代码:

     1 import cv2
     2 dog = cv2.imread("/home/miao/dog.jpg")
     3 cv2.imshow("dog1" , cat)
     4 b = dog[:,:,0]
     5 g = dog[:,:,1]
     6 r = dog[:,:,2]
     7 cv2.imshow("b" , b) 
     8 cv2.imshow("g" , g) 
     9 cv2.imshow("r" , r) 
    10 dog[:,:,0] = 0
    11 cv2.imshow("dogb0" , dog)                                                        
    12 dog[:,:,1] = 0
    13 cv2.imshow( " dogb0g0" , dog)
    14 cv2.waitKey()
    15 cv2.destroyAllWindows()

    显示的图片如下:

    原图:

     单通道提取:

    提取B通道

     提取G通道

     提取R通道

     B通道值设置为0

     B通道值,G通道值设置为0

    为什么单通道提取和将两个通道的值设置为0的图片不一致?

    单通道提取的图像为灰度图像

    而设置其他通道值为0图像依然是彩色图像

    为什么提取不同的通道的灰度图像也不一样

    灰度图像有不同的算法

    1)最大值法:使转化后的R,G,B得值等于转化前3个值中最大的一个,即:R=G=B=max(R,G,B)。这种方法转换的灰度图亮度很高。

      2)平均值法:是转化后R,G,B的值为转化前R,G,B的平均值。即:R=G=B=(R+G+B)/3。这种方法产生的灰度图像比较柔和。

      3)加权平均值法:按照一定权值,对R,G,B的值加权平均,

    即:这里写图片描述分别为R,G,B的权值,取不同的值形成不同的灰度图像。由于人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,因此使将得到较易识别的灰度图像。一般时,得到的灰度图像效果最好。

    现在还不清楚单通道提取的图像是怎样算法

  • 相关阅读:
    数据持久化-- json、pickle
    socket编程介绍
    RHEL/CentOS 下安装yum源地址汇集---不定期更新
    设置阿里云pip源,加速pip更新速度
    pacemaker+corosync+haporxy高可用集群部署
    etcd数据库备份与还原
    PEM格式的证书转换格式
    CentOS 7 上 yum 安装python3
    webconsole提示undefined: ssh.InsecureIgnoreHostkey错误解决方案
    oh my zsh 配置文件
  • 原文地址:https://www.cnblogs.com/miaorn/p/12175675.html
Copyright © 2011-2022 走看看