1.直接读取图片像素值:
import cv2
a=cv2.imread("1.png",cv2.IMREAD_UNCHANGED)
print(a[100,100])
输出:
[ 78 68 178]
2.使用numpy访问像素
(1)访问图片像素
import cv2
import numpy as np
img=cv2.imread("1.png",cv2.IMREAD_UNCHANGED)
blue=img.item(100,100,0)
green=img.item(100,100,1)
red=img.item(100,100,2)
print(blue)
print(green)
print(red)
输出:
78
68
178
(2)修改图片像素
import cv2
import numpy as np
img=cv2.imread("1.png",cv2.IMREAD_UNCHANGED)
print(img.item(100,100,0))
print(img.item(100,100,1))
print(img.item(100,100,2))
img.itemset((100,100,0),255)
img.itemset((100,100,1),255)
img.itemset((100,100,2),255)
print(img.item(100,100,0))
print(img.item(100,100,1))
print(img.item(100,100,2))
输出:
78
68
178
255
255
255
3.获取图像属性
import cv2
import numpy as np
img=cv2.imread("1.png",cv2.IMREAD_UNCHANGED)
print(img.shape)
print(img.size)
print(img.dtype)
输出:
(512, 512, 3)
786432
uint8
4.图像ROI
import cv2
import numpy as np
img=cv2.imread("1.png",cv2.IMREAD_UNCHANGED)
face=img[220:400,250:350]
cv2.imshow("original",img)
cv2.imshow("face",face)
cv2.waitKey()
cv2.destroyAllWindows()
输出:
5.通道的拆分与合并
import cv2
import numpy as np
img=cv2.imread("1.png",cv2.IMREAD_UNCHANGED)
b,g,r=cv2.split(img)
cv2.imshow("B",b)
cv2.imshow("G",g)
cv2.imshow("R",r)
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()
输出: