OpenCV 例程300篇03. 图像的显示(cv2.imshow)

Posted YouCans

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV 例程300篇03. 图像的显示(cv2.imshow)相关的知识,希望对你有一定的参考价值。

专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』
01. 图像的读取(cv2.imread)
02. 图像的保存(cv2.imwrite)
03. 图像的显示(cv2.imshow)
04. 用 matplotlib 显示图像(plt.imshow)


【OpenCV 例程300篇】03. 图像的显示(cv2.imshow)


函数 cv2.imshow() 用于在窗口中显示图像。

函数说明:

None = imshow(winname, img)

  • 函数 cv2.imshow() 在指定窗口中显示 OpenCV 图像,窗口自适应图像大小。
  • 显示图像的缩放取决于图像深度:
    • 对 8 位无符号图像,按原样显示;
    • 对 16 位无符号或 32 位整数图像,将像素值范围 [0,255 * 256] 映射到 [0,255] 显示;
    • 对 32 位浮点图像,将像素值范围 [0,1] 映射到 [0,255] 显示;
    • 如果指定窗口尚未创建,则创建一个自适应图像大小的窗口;
    • 如果要显示大于屏幕分辨率的图像,需要先调用 namedWindow(“”,WINDOW_NORMAL)。

参数说明:

  • winname:字符串,显示窗口的名称。
  • img:所显示的 OpenCV 图像,nparray 多维数组。

注意事项:

  1. 函数 cv2.imshow() 之后要用 waitKey() 函数设定图像窗口的显示时长,否则不会显示图像窗口。
  2. 图像窗口将在 waitKey() 函数所设定的时长(毫秒)后自动关闭,waitKey(0) 表示窗口显示时长为无限。
  3. 可以创建多个不同的显示窗口,每个窗口必须命名不同的 filename。
  4. 可以用 destroyWindow() 函数关闭指定的显示窗口,也可以用 destroyAllWindows() 函数关闭所有的显示窗口。

基本例程:

    # 1.6 图像的显示(cv2.imshow)
    imgFile = "../images/imgLena.tif"  # 读取文件的路径
    img1 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)
    img2 = cv2.imread(imgFile, flags=0)  # flags=0 读取为灰度图像
    
    cv2.imshow("Demo1", img1)  # 在窗口 "Demo1" 显示图像 img1
    cv2.imshow("Demo2", img2)  # 在窗口 "Demo2" 显示图像 img2
    key = cv2.waitKey(0)  # 等待按键命令, 1000ms 后自动关闭

扩展例程:

    # 1.7 图像显示(按指定大小的窗口显示图像)
    imgFile = "../images/imgLena.tif"  # 读取文件的路径
    img1 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)
    
    cv2.namedWindow("Demo3", cv2.WINDOW_NORMAL)
    cv2.resizeWindow("Demo3", 400, 300)
    cv2.imshow("Demo3", img1)  # 在窗口 "Demo3" 显示图像 img1
    key = cv2.waitKey(0)  # 等待按键命令, 1000ms 后自动关闭
    # 1.8 图像显示(多个图像组合显示)
    imgFile1 = "../images/imgLena.tif"  # 读取文件的路径
    img1 = cv2.imread(imgFile1, flags=1)  # flags=1 读取彩色图像(BGR)
    imgFile2 = "../images/imgGaia.tif"  # 读取文件的路径
    img2 = cv2.imread(imgFile2, flags=1)  # # flags=1 读取彩色图像(BGR)

    imgStack = np.hstack((img1, img2))  # 相同大小图像水平拼接
    cv2.imshow("Demo4", imgStack)  # 在窗口 "Demo4" 显示图像 imgStack
    key = cv2.waitKey(0)  # 等待按键命令, 1000ms 后自动关闭


(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
更多内容请见:>『youcans 的 OpenCV 例程300篇 - 总目录』(https://blog.csdn.net/youcans/article/details/125112487)

以上是关于OpenCV 例程300篇03. 图像的显示(cv2.imshow)的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 例程300篇01. 图像的读取(cv2.imread)

OpenCV 例程 300篇254.OpenCV 绘制图像标记

OpenCV 例程300篇249. 图像的重映射(cv2.remap)

OpenCV 例程300篇249. 图像的重映射(cv2.remap)

youcans 的 OpenCV 例程 300篇254.绘制标记

OpenCV 例程 300篇252.视频文件的读取与保存