一:opencv处理
1、读取像素
返回值 = 图像(位置参数)
灰度图像返回灰度值;
p = img [88,142]
print(p)
RGB图像返回为B、G、R的值
blue = img [78,125,0] print(blue)
green = img [78,125,1] print(green)
red = img [78,125,2] print(red)
一次性读取三通道的值
p = img [78,125] print(p)
2、修改像素值
灰度值:无需指定通道名字
import cv2
img = cv2.imread("e:\\linagray.jpg",cv2.IMREAD_UNCHANGED)
print(img[50,50])
img[50,50]=255
print(img[50,50])
164
255
BGR图像:
import cv2
img = cv2.imread("e:\\lina.png",cv2.IMREAD_UNCHANGED)
print(img[50,50])
print(img[50,50,0])
print(img[50,50,1])
print(img[50,50,2])
img[50,50,0]=255
print(img[50,50])
img[50,50,1]=255
print(img[50,50])
img[50,50,2]=255
print(img[50,50])
[114 140 230]
114
140
230
[255 140 230]
[255 255 230]
[255 255 255]
print(img[50,50])
一次性修改
img[50,50]=[255,255,255] img[50,50]=255
print(img[50,50])
[114 140 230]
[255 255 255]
修改一块像素
img = cv2.imread("e:\\lina.png",cv2.IMREAD_UNCHANGED)
cv2.imshow("original",img)
白:img[50:100,50:100]=[255,255,255]
绿:img[50:100,50:100]=[0,255,0]
cv2.imshow("result",img)
二、numpy进行像素处理
1、读取像素
返回值 = 图像.item(位置参数)
灰度图象:
p = img.item(88,142)
print(p)
BGR图像
blue = img.item(78,128,0)
print(blue)
green = img.item(78,128,1)
print(green)
red = img.item(78,128,2)
print(red)
2、修改像素
图像名. itemset(位置,新值)
灰度图像
import cv2
import numpy as np
img = cv2.imread("e:\\linagray.jpg",cv2.IMREAD_UNCHANGED)
print(img.item(100,100))
img.itemset((100,100),255)
print(img.item(100,100))
105
255
BGR图像
import cv2
import numpy as np
img = cv2.imread("e:\\lina.png",cv2.IMREAD_UNCHANGED)
print(img.item(100,100,0))
img.itemset((100,100,0),255)
print(img.item(100,100,0))
print(img.item(100,100,1))
img.itemset((100,100,1),255)
print(img.item(100,100,1))
print(img.item(100,100,2))
img.itemset((100,100,2),255)
print(img.item(100,100,2))
78
255
68
255
178
255