☰
OpenCV读取与显示图像:从基础代码到多图显示技巧
2026/10/23 6:38:46 网站建设 项目流程

在OpenCV的学习中,图像的读取与显示是最基础也是最关键的操作。就像盖房子需要打好地基一样,掌握好图像的读取和显示,能为后续更复杂的图像处理操作奠定坚实的基础。接下来,我们就一起深入学习如何使用OpenCV进行图像的读取和显示,以及多图显示的技巧。

实操模块:使用OpenCV读取和显示单张图像

代码实现

下面是使用Python和OpenCV实现图像读取和显示的基础代码:

importcv2# 读取图像image=cv2.imread('example.jpg')# 检查图像是否成功读取ifimageisNone:print("图像读取失败,请检查图像路径是否正确。")else:# 显示图像cv2.imshow('Image',image)# 等待按键事件cv2.waitKey(0)# 关闭所有窗口cv2.destroyAllWindows()
代码解释
  • cv2.imread('example.jpg'):这行代码的作用是读取指定路径下的图像文件。cv2.imread函数会返回一个表示图像的NumPy数组,如果读取失败则返回None。
  • cv2.imshow('Image', image):这行代码用于显示图像。cv2.imshow函数接受两个参数,第一个参数是显示窗口的标题,第二个参数是要显示的图像。
  • cv2.waitKey(0):这行代码会让程序暂停,等待用户按下任意按键。参数0表示无限等待,直到用户按键。
  • cv2.destroyAllWindows():这行代码用于关闭所有由OpenCV创建的显示窗口。
常见问题及解决方法
  • 图像读取失败:如果图像读取失败,可能是图像路径不正确或者图像文件损坏。可以检查图像路径是否正确,或者尝试打开其他图像文件。
  • 显示窗口异常:如果显示窗口没有正常显示图像或者显示异常,可以检查OpenCV版本是否兼容,或者尝试更新OpenCV库。

实操模块:OpenCV多图显示及布局调整

多图显示的基本原理

在实际应用中,我们可能需要同时显示多张图像。OpenCV并没有直接提供多图显示的函数,但我们可以通过创建多个显示窗口或者将多张图像拼接成一张图像来实现多图显示。

多窗口显示方法

下面是使用多个窗口显示多张图像的代码示例:

importcv2# 读取图像image1=cv2.imread('example1.jpg')image2=cv2.imread('example2.jpg')# 检查图像是否成功读取ifimage1isNoneorimage2isNone:print("图像读取失败,请检查图像路径是否正确。")else:# 显示图像cv2.imshow('Image 1',image1)cv2.imshow('Image 2',image2)# 等待按键事件cv2.waitKey(0)# 关闭所有窗口cv2.destroyAllWindows()
图像拼接显示方法

除了使用多个窗口显示多张图像,我们还可以将多张图像拼接成一张图像进行显示。下面是将两张图像水平拼接的代码示例:

importcv2importnumpyasnp# 读取图像image1=cv2.imread('example1.jpg')image2=cv2.imread('example2.jpg')# 检查图像是否成功读取ifimage1isNoneorimage2isNone:print("图像读取失败,请检查图像路径是否正确。")else:# 调整图像大小,确保两张图像高度一致height=min(image1.shape[0],image2.shape[0])image1=cv2.resize(image1,(int(image1.shape[1]*height/image1.shape[0]),height))image2=cv2.resize(image2,(int(image2.shape[1]*height/image2.shape[0]),height))# 水平拼接图像combined_image=np.hstack((image1,image2))# 显示拼接后的图像cv2.imshow('Combined Image',combined_image)# 等待按键事件cv2.waitKey(0)# 关闭所有窗口cv2.destroyAllWindows()
代码解释
  • np.hstack((image1, image2)):这行代码使用NumPy的hstack函数将两张图像水平拼接成一张图像。
  • cv2.resize:在拼接图像之前,我们需要确保两张图像的高度一致,因此使用cv2.resize函数调整图像大小。
布局调整技巧

在进行多图显示时,我们可以根据需要调整图像的布局。例如,我们可以将多张图像排列成网格状,或者根据图像的重要性调整图像的大小和位置。

核心技术点总结

通过上面的学习,我们掌握了使用OpenCV读取和显示单张及多张图像的方法。核心技术点包括:

  • 使用cv2.imread函数读取图像。
  • 使用cv2.imshow函数显示图像。
  • 使用多个窗口或者图像拼接的方法实现多图显示。

小节总结

通过本小节的学习,我们学会了使用OpenCV读取和显示单张及多张图像的方法,掌握了多图显示的布局调整技巧,同时也解决了图像读取失败、显示窗口异常等常见问题。这些知识对于我们后续进行更复杂的图像处理操作非常重要。

掌握了OpenCV图像读取和显示的内容后,下一节我们将深入学习OpenCV的图像基本操作,进一步完善对本章OpenCV基础入门主题的认知。


🍃 系列专栏导航

  • 🔖 专栏导航 深入浅出OpenCV

其他专栏衔接

  • 🔖 《若依框架全攻略:从入门到项目实战》
  • 🔖 《深入浅出Mybatis》
  • 🔖 全面掌握MySQL工具
  • 🔖 《深入浅出Maven》
  • 🔖 《深入浅出Kafka》
  • 🔖 《全面掌握Swagger:从入门到实战》
  • 🔖 《Lombok:高效Java开发的秘密武器(完全解读)》
  • 🍃 博客概览:《程序员技术成长导航,专栏汇总》

建议按系列顺序阅读,从基础到进阶逐步掌握核心能力,避免遗漏关键知识点~

全景导航博文系列

  • 🔖《一口气学完fastJson》
  • 🔖《一文搞懂PageHelper》
  • 🔖《一文搞懂MyBatis》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询