zoukankan      html  css  js  c++  java
  • python-opencv-像素操作

    每个像素都由颜色组成,常见的颜色存储格式有RGB和bgr两种,虽然两者都是由红色通道、绿色通道和蓝色通道组成,但是顺序不同。OpenCV采用的颜色存储格式是bgr。需要注意的是,灰度图片是单一颜色通道。 

    通过mread()方法获取的图像数据是一个矩阵,我们可以将图像看成一个多维的list,其中第一维和第二维分别表示图像的宽高,第三维则是像素内容。明白这一点后,我们就可以通过操作list来获取指定位置的像素点。

    import cv2
    img = cv2.imread("1.png")
    print(img)
    print(img[0,0])  #获取第一行第一列的像素--获取指定像素
    #参数1 是列坐标 参数2 是横坐标
    print('第一列数据') print(img[:,0]) #获取第一列数据 print('第一行数据') print(img[0,:]) #第一行数据 #可以看到,每个像素点都是由三个数组成的元组,这三个数分别表示bgr的蓝色通道数值、绿色通道数值和红色通道数值

    像素是整个图像的最小单位,拿到图像的像素后,我们就可以通过修改像素来对图像“为所欲为”了

    import cv2
    img = cv2.imread("1.png")
    i=img[100,100]
    (b,g,r)=i
    print(i,b,g,r)
    for x in range(0,101):  #从(100,100)到(200,100)画一条竖直的蓝线
        img[100+x,100]=(250,0,0)  #指定点修改像素值
    cv2.imshow("new window", img)
    
    cv2.waitKey(0)

    效果:

     

  • 相关阅读:
    三数之和(排序+双指针)
    数值的整数次方(类快速幂)
    Z字形变换
    相交链表
    牛妹的蛋糕
    安置路灯
    迷路的牛牛
    Office 2003的卸载 与 Office 2013 的安装
    解决“飞鸽传书”无法显示局域网用户的方法
    bcd(Binary-Coded Decimal‎缩写)
  • 原文地址:https://www.cnblogs.com/liming19680104/p/12202618.html
Copyright © 2011-2022 走看看