opencv学习笔记3:像素处理

    技术2024-07-18  70

    学习笔记,看的某宝的一个视频学习的

    读取像素

    返回值=图(位置参数)

    灰度图读取像素

    灰度度只有两维

    d=img[78,155] print(d)

    彩色图读取像素 彩色图 有三个通道。 注意opencv读取的是BGR,非RGB

    blue=img[78,155,0] green=img[78,150.1] red=img[78,150,2]

    如果没有指定通道 打印出的p有三个值,BGR

    p=img[78,150]

    修改像素

    灰度图修改像素 直接赋值

    img[78,150]=255

    彩色图修改像素 可以分通道赋值

    img[78,1500]=255 img[78,1501]=255 img[78,1502]=255

    可以直接赋值

    img[78,150]=[255,255,255]

    算例

    灰度图

    import cv2 img=cv2.imread('lena256.bmp',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 p=img[100,100]#读取像素 print(p) img[100,100]=255 print(img[100,100])

    结果: 可以发现第100行,100列像素有73变到255 彩色图修改

    修改一个通道

    import cv2 i=cv2.imread("e:\\lesson\\image\\lenacolor.png",cv2.IMREAD_UNCHANGED) #请确保在指定目录下有彩色图像文件 print(i[100,100]) i[100,100,0]=255 print(i[100,100])

    同时修改三个通道

    import cv2 i=cv2.imread("lenacolor.png",cv2.IMREAD_UNCHANGED) #请确保在指定目录下有彩色图像文件 #同时更改三个通道 print(i[100,100]) i[100,100]=[255,255,255] print(i[100,100])

    修改一个区域

    import cv2 img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 cv2.imshow('image',img)#原图 #修改一个区域像素 img[100:150,100:150]=[0,0,255] cv2.imshow("newimage",img)#新图 cv2.waitKey(0) cv2.destroyAllWindows()

    numpy读取修改像素

    读取像素 返回值=图像.item(位置参数) item:数组的指定元素作为适当的Python标量的副本 灰度图:

    p=img.item(88,150)

    彩色图

    print(i.item(100,100,0))#blue print(i.item(100,100,1))#green print(i.item(100,100,2))#red

    修改像素 图像名.itemset(位置,新值) 灰度图:

    i.itemset((100,100),255)

    彩色图:

    i.itemset((100,100,0),255) i.itemset((100,100,1),255) i.itemset((100,100,1),255)

    算例

    import cv2 import numpy as np i=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 print(i.item(150, 120, 0))#读取原始像素 i.itemset((150, 120, 0),255)#修改 print(i.item(150, 120, 0))#修改之后像素

    结果:

    总目录链接: python3+opencv学习笔记汇总目录(适合基础入门学习) 电气专业的计算机小白,写博文不容易,如果你觉得本文不错,点个赞支持下。谢谢

    Processed: 0.020, SQL: 9