一 读取一张图片
1. 读取图片
1 import cv2 as cv 2 src = cv.imread("d:/test.jpg") 3 cv.namedWindow("input image",cv.WINDOW_AUTOSIZE) 4 cv.imshow("imput image",src) 5 cv.waitKey(0) 6 cv.destroyAllWindows()
2. 打印其基础信息
1 print(src.shape) #形状 2 print(src.size) #大小 3 print(src.dtype) #每个像素所占位数
3. 数值化
pixel_data=np.array(src) print(pixel_data)
4. 保存图片
cv.imwrite("D:/test.png",src)
5. 调整显示窗口的大小
cv.namedWindow("enhanced",0) cv.resizeWindow("enhanced", 640, 480)
二 图片处理
1. 遍历每一个像素
height = image.shape[0] width = image.shape[1] channels = image.shape[2] for row in range(height): for col in range(width): for c in range(channels): image[row,col,c]=255-image[row,col,c] #例子为反色
2. 滤波器
kernel = np.array([[0, 1, 0],[1,-5, 1],[0, 1, 0]]) image = cv.filter2D(src, -1, kernel) cv.imshow("enhance",image)
3. 混合两个图片
beta = ( 1.0 - alpha ) addWeighted( src1, alpha, src2, beta, 0.0, dst) #结果为 dst=alpha*src1+beta*src2+0.0
4. 色彩空间及转换
色彩空间分类: RGB HSV HIS YCrCb(主要用于人肤色识别) YUV
grey = cv.cvtColor(image,cv.COLOR_BGR2GREY)
HSV = cv.cvtColor(image,cv.COLOR_BGR2HSV)
5. 色彩分离
rst = inrange(type,lowerb,upperb)
原文:https://www.cnblogs.com/SagaraKizai/p/9472630.html