最近实习的公司leader叫我看看OpenCV,所以自己找些资料学学,然后记个笔记。
首先是导入库函数
import numpy as np
然后最基本的就是读取
src = cv.imread("E:/OpenCv/photo.jpg", 1)
imread()的第二个参数为代表读取模式,为0代表以灰度模式读入图像,为1代表读入彩色图像
例如:
然后我们在显示出来。
代码
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) cv.imshow("input image", src) cv.waitKey(0) cv.destoryAllWindows()
我们以不同的模式读取图片,有两种不同的结果。
我们读取的这个src,是用numpy存储的,我们来读取每个像素点。
def get_photo(src): print(src.shape) width = src.shape[0] height = src.shape[1] channel = src.shape[2] print("width: %s,height %s, height:%s" % (width, height, channel)) for i in range(width): for j in range(height): for k in range(channel): src[i, j, k] = 255 - src[i, j, k]
然后我们继续显示:
接下来就是图片的写入。
cv.imwrite("E:/OpenCv/1.jpg", src)
就是当我们按下S键的时候,保存图片到目录,然后退出,按下ESC键的时候,直接退出。
代码
k = cv.waitKey(0) if k == 27: cv.destroyAllWindows() # wait ESC key to exit elif k == ord('s'): cv.imwrite("E:/OpenCv/1.jpg", src) cv.destoryAllWindows()
还有我们进行通道分离。因为有三通道,BGR。
b, g, r = cv.split(src) # 通道分离 cv.imshow("blue", b) cv.imshow("green", g) cv.imshow("red", r) src1 = cv.merge([b, g, r]) #对通道进行合并
参考资料: