python-CV
OpenCV 读取图像时天然就是 H×W×C 且通道顺序为 BGR
图是三维数组H×W×C,第一维是行(Height),第二维是列(Width),第三行是通道(channel)BGR
cv2.imread(“picture.jpg”)
读取图片
cv2.imshow(“Image”, picture)
创建标题名为Image的窗口,显示图片picture。同名窗口只会存在一个,显示最后一个图片。
cv2.waitKey(0)
让窗口保持打开状态,直到用户按下任意键。参数0表示无限等待,cv2.waitKey(1000) 表示等待 1000ms(1秒)。没有这一句,窗口会在显示后立即关闭
cv2.destroyAllWindows()
关闭所有由OpenCV打开的窗口。
cv2.imwrite(“sy2.4-5.jpg”, ar_hwc_4)
保存ar_hwc_4图片为’sy2.4-5.jpg’于当前目录下
彩色图的灰度(或亮度)值Gray = (B0.114+ G0.587 + R0.299)
ar_hwc_3 = (
0.114ar_hwc_1[:, :, 0] +
0.587ar_hwc_1[:, :, 1] +
0.299ar_hwc_1[:, :, 2]
).astype(np.uint8)
彩图转灰度图
astype(np.uint8) 是 NumPy 中改变数组数据类型的函数,将数组转换成 8 位无符号整数类型(unsigned 8-bit integer)也就是把每个像素值变成 0~255 之间的整数。
OpenCV 显示图像时要求图像的像素类型必须是:uint8(0~255)或float32(0~1 或 0~255)
公式计算时得到的是带小数的float型,必须转成 uint8。OpenCV 显示图像的标准格式是 uint8,OpenCV 不会自动把float值映射到显示范围,需要自己保证数值合法并归一化(normalize)
图等比例缩小可以跨行读取图比如[::4, ::4, :],是4:1缩小
np.vstack()只能接收一个”元组/列表”作为参数,拼接两张图需要传入元组(p1,p2)而不是p1,p2
