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