在计算机中是由很多的像素点构成这样一张图像的,所谓像素点是一个值,在计算机中一个像素点的值是在0-255之间进行浮动的,表示该点的一个亮度(0表示为黑色·,255表示最亮的接近于白色)
RGB称为图像的颜色通道,通常我们所见的图像都是RGB三颜色通道的,R:红色,G:绿色,B:蓝色
组成像素点的矩阵就是该图像的大小
图像读取:
import cv2
img = cv2.imread(‘nengneng.jpg’)
print(img)
这里需要注意的是这里的路径必须是英文,不然就会输出None
可以观察到所得图像的维度为3,一般来说用h,w,c来表示当前得到图像shape值的结果,输出的每一个点就是像素点。
图像展示:
#image表示为这张图像起一个名字,img就是需要展示的图像
cv2.imshow(‘image’,img)
#等待时间,毫秒级,0表示任意键终止,如果输入数字则表示该图片展示时长
cv2.waitKey(0)
#表示关闭名字为name的图片窗口,如果不输入任何东西则表示将所有窗口都关闭
cv2.destroyAllWindows(name)
注意:opencv默认读取的是一个BGR的格式,如果做一些边缘检测及一些其他处理后进行展示,matplotlib展示出来的是RGB的格式,该格式与opencv有一些冲突,所以可能展示出来的比较奇怪,如果需要展示推荐可以直接使用opencv中自带函数进行展示或者对图片进行转换成BGR格式再使用matplotlib进行展示
可以定义一个展示的函数
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows(name)
显示图像时如果出现图像太大超出屏幕无法完全显示时可以在cv2.imshow(name,img)前面加入代码cv2.namedWindow(name,0)
其是OpenCV中的一个函数,用于创建一个窗口并指定窗口的名称和属性。其中,name是窗口的名称,0是窗口的属性,表示窗口大小可以根据图像大小自动调整。
这个函数的作用是创建一个可调整大小的窗口,用于显示图像。
def cv_show(name,img):
cv2.namedWindow(name,0)
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows(name)
读取灰度图像:
在很多检测任务或识别任务中,我们都需要先将原始数据转换为灰度图,在灰度图中对图像进行各种的预处理操作
cv2.imread(‘nengneng.jpg’, cv2.IMREAD_GRAYSCALE)
图像保存:
cv2.imwrite(‘nengneng.png’,img1)