python-opencv(2):图像处理基础

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()

输出:

猜你喜欢

转载自blog.csdn.net/Mr_zhuzj/article/details/82192900