前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用opencv和matplotlib把多个图片显示在一个窗体内

如何使用opencv和matplotlib把多个图片显示在一个窗体内

原创
作者头像
我是攻城师
发布2018-05-14 17:32:18
6.2K2
发布2018-05-14 17:32:18
举报
文章被收录于专栏:我是攻城师我是攻城师

在使用opencv处理一些计算机视觉方面的一些东西时,经常会遇到把多张图片放在一个窗体内对比展示,而不是同时打开多个窗体,opencv作为一个专业的科学计算库,虽然也提供了方法,但使用起来并不是特别灵活而matplotlib作为一个专业的图形库则弥补了这个缺点,下面我们来看下使用。

使用opencv展示多张图片

代码语言:python
复制
def opecv_muti_pic():
    # 图1
    img = cv.imread('E:\\tmp\\cat.jpg')
    # 图2
    img2 = cv.imread('E:\\tmp\\cat.jpg')
    # 图集
    imgs = np.hstack([img,img2])

    # 展示多个
    cv.imshow("mutil_pic", imgs)

    #等待关闭
    cv.waitKey(0)
image
image

注意:

虽然opencv也能正常展示多个图片,但是限制比较大,比如说只能同样尺寸大小的图片,颜色通道一样才能放在一起展示,如果你想展示多个不同的图片在一个opencv的窗体里面,目前好像还不行,包括同一个图片,一个彩色,一个灰度图片都不可以放在一个窗体中,基于这个原因我们大多数时候才使用matplotlib来完成这个任务。

使用matplotlib展示多张图片

代码语言:python
复制
def matplotlib_multi_pic2():

        plt.gcf().canvas.set_window_title('Test')
        plt.gcf().suptitle("multi pic test")

        # img = cv.imread('E:\\tmp\\cat.jpg')
        img = cv.imread('E:\\tmp\\cat.jpg')
        gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
        img2 = cv.imread('E:\\tmp\\test6.jpg')
        gray2 = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)

        img3 = cv.imread('E:\\tmp\\hough.jpg')


        #如果总图片个数不超过10,我们还可以用快速的方法
        plt.subplot(321),plt.imshow(img),plt.title("321")
        plt.subplot(322),plt.imshow(gray),plt.title("322")
        plt.subplot(323),plt.imshow(img2),plt.title("323")
        plt.subplot(324),plt.imshow(gray2),plt.title("324")
        plt.subplot(326),plt.imshow(img3),plt.title("326")


        plt.show()

另外一种写法:

代码语言:python
复制
def matplotlib_multi_pic1():
    for i in range(9):
        img = cv.imread('E:\\tmp\\cat.jpg')
        title="title"+str(i+1)
        #行,列,索引
        plt.subplot(3,3,i+1)
        plt.imshow(img)
        plt.title(title,fontsize=8)
        plt.xticks([])
        plt.yticks([])
    plt.show()
image
image

推荐

源码已经上传到我的github中,感兴趣的朋友可以fork学习:

https://github.com/qindongliang/opecv3-study/tree/master

参考文档:

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplot.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用opencv展示多张图片
  • 使用matplotlib展示多张图片
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档