读取:
retval=cv2.imread(“文件名”[,显示控制参数])
常用控制参数有 :
显示
None=cv2.imshow(“窗口名”,图像名)
retval=cv2.waitKey([,delay])
delay:
删除所有窗口
cv2.destroyAllWindows()
保存
retval=cv2.imwrite(“文件地址”,文件名)
图像是由像素构成的
图像分类
二值图像 0 黑 1 白
灰度图像 0 纯黑 255纯白
RGB图像 0- 255 红色为(255,0,0)
备注:
RGB图像处理为灰度图像不会丢失信息
opencv里是bgr的顺序
读取像素
返回值=图像(位置参数)
修改像素
整体区域
imag[100:150,100:150]=[255,0,0]
灰度图像:
import cv2
import numpy as np
i=cv2.imread(“D:/123.jpg”,cv2.IMREAD_GRAYSCALE)
print(i.item(1,2))
i.itemset((1,2),2)
print(i.item(1,2))
彩色图像:
import cv2
import numpy as np
i=cv2.imread(“D:/123.jpg”,cv2.IMREAD_UNCHANGED)
print(i.item(1,2,2))
i.itemset((1,2,2),2)
print(i.item(1,2,2))
只能单通道更改
import cv2
import numpy as np
a=cv2.imread(“D:/123.jpg”,cv2.IMREAD_GRAYSCALE)
b=cv2.imread(“D:/123.jpg”,cv2.IMREAD_UNCHANGED)
print(a.shape)
print(b.shape)
print(a.size)
print(b.size)
print(a.dtype)
print(b.dtype)
(587, 667)
(587, 667, 4)
391529
1566116
uint8
uint8
import cv2
import numpy as np
b=cv2.imread(“D:/2.jpg”,cv2.IMREAD_UNCHANGED)
a=cv2.imread(“D:/1.jpg”,cv2.IMREAD_UNCHANGED)
c=a[100:200,100:200]
b[0:100,0:100]=c
cv2.imshow(“1+2”,b)
cv2.waitKey(0)
cv2.destroyAllWindows()
拆分通道:
B=imag[:,:,0]
b,g,r=cv2.split(imag)
b=cv2.split(imag)[0]
返回的都是灰度图像
合并通道:
m=cv2.merge([r,g,b])
import cv2
import numpy as np
imag=cv2.imread(“D:/1.jpg”,cv2.IMREAD_UNCHANGED)
r,l,c=imag.shape
g=np.zeros((r,l),imag.dtype) #造空通道
b=np.zeros((r,l),imag.dtype)
r=cv2.split(imag)[2]
m=cv2.merge([b,g,r])
cv2.imshow(“merge”,m)
cv2.waitKey(0)
cv2.destroyAllWindows()
持续更新中----------------------------------------------------------------------------------------