最近实习的公司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])  #对通道进行合并

参考资料:

Opencv-Python中文教程