小白边学边记录,主要是为了给自己之后复习看的。
图像读取以及显示:
代码:
import cv2 as cv
# 图片读取
Img = cv.imread('C:/Users/78761/Pictures/Saved Pictures/learnCV')
cv.imshow('Image', Img)
出现报错:
cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wvn_it83\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
原因:读入图片路径不完整,导致找不到图片无法正确读入。注意:图片文件名不能省略后缀。
解决后代码:
import cv2 as cv
# 图片读取
Img = cv.imread('C:/Users/78761/Pictures/Saved Pictures/learnCV.jpg')
cv.imshow('Image', Img)
opencv中的Img.shape函数:
返回值:(行数,列数,色彩通道数)
注意的点:行数对应的是y轴的高度,列数对应x轴宽度。(y,x)
图像中blue[:, :, 0] = Img[:, :, 0]的理解:
# 0 保留蓝色通道 其他颜色值为0
blue = np.zeros_like(Img)
blue[:, :, 0] = Img[:, :, 0]
cv.imshow('blue', blue)
cv.waitKey(0)
通过该数值测试得到以下结论:
[行起始值:行终点值:stride,列起始值:列终点值:stride,图片的通道]
前两个逗号之前对应的模式是 start:end:stride
stride为-1时反向遍历,不填写或为1时正向遍历
实际上是python的切片相关的知识:
1. [], [:], [::]
[]:访问序列中的一个元素,例如 str_list[3] 表示访问 str_list 序列中的第四个元素,index = 3。 [:]:访问序列中的一段元素,例如 str_list[1:4] 表示访问 str_list 序列中的第二到第四个元素 (str_list[1],str_list[2],str_list[3]),不包含 str_list[4] 元素。 如果没有提供索引值,则默认从 0 开始。str_list[:4] 表示访问这个序列的第一到第四个元素 (不包含 str_list[4] 元素),str_list[4:] 表示访问第五到最后一个元素。 [::-1]:翻转序列的元素,例如 str_list[::-1] 表示翻转 str_list 序列中的元素。 [::2]:每隔一个元素取一个。
相关知识原文链接:https://blog.csdn.net/chengyq116/article/details/100145100
green = np.zeros_like(Img)的理解:
生成和Img一样大小的矩阵,其元素均为0。
全部代码:
import numpy as np
import cv2 as cv
# 图片读取
Img = cv.imread('C:/Users/78761/Pictures/Saved Pictures/learnCV.jpg')
cv.imshow('Image', Img)
# 等待键盘输入关闭窗口
cv.waitKey(0)
# 显示图像中每个颜色通道的图像
print(Img.shape)
# 0 保留蓝色通道 其他颜色值为0
blue = np.zeros_like(Img)
blue[:, :, 0] = Img[:, :, 0]
cv.imshow('blue', blue)
cv.waitKey(0)
# 1 保留绿色通道 其他颜色值为0
green = np.zeros_like(Img)
green[:, :, 1] = Img[:, :, 1]
cv.imshow('green', green)
cv.waitKey(0)
# 2 保留红色通道 其他颜色值为0
red = np.zeros_like(Img)
red[:, :, 2] = Img[:, :, 2]
cv.imshow('red', red)
cv.waitKey(0)
# 图像文件的保存
cv.imwrite('C:/Users/78761/Pictures/Saved Pictures/learnBlue.jpg', blue)
代码来源:
https://blog.csdn.net/weixin_45081640/article/details/118147714