中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
OpenCV-Python在一個窗口中顯示多幅圖像

在使用opencv顯示圖像時,有時候需要顯示多張圖像,就會出現(xiàn)多個窗口,顯得冗余,用戶不易觀看。這時候就想著能不能將這些圖像在一個窗口中顯示。本文將介紹兩種方法去實現(xiàn)。

方法1:創(chuàng)建空畫布,將所有圖像復制到畫布中,最后顯示畫布

創(chuàng)建一個能容納所有圖像大小的畫布,最后將圖像復制到畫布中,為了美觀,我們對圖像之間留有間隙,以四張圖像一起顯示為例,組成一個2×2的圖像矩陣。

話不多說,先上代碼:

# 方法1:創(chuàng)建一個畫布,將所有圖像復制到畫布中,最后顯示畫布 h, w, _ = img.shape
img_list = [img, invert, gaussianBlur, flip] # 圖像列表
four_view = np.zeros((h * 2 + 10, w * 2 + 10, 3), np.uint8) # 創(chuàng)建空白圖像 four_view[:, :] = 255 # 給所有通道的像素值賦值255for i in range(len(img_list)):        row = i // 2  # 為了設置圖像排列規(guī)則 col = i % 2 print(row, col)# 將小圖像復制到大畫布上。 np.copyto(four_view[(h + 10) * row:h * (row + 1) + 10 * row, (w + 10) * col:w * (col + 1) + 10 * col], img_list[i])
    cv.imshow('result', four_view)

結(jié)果展示:

方法2:使用numpy包中水平堆疊和豎直堆疊完成所有圖像的堆疊,最后當成一張完整圖像顯示。

主要用到的兩個函數(shù)有:np.hstack()np.vstack()

  • 水平堆疊函數(shù)hstack(tup):ndarrays 序列除了第二個軸外,數(shù)組必須具有相同的形狀,除了可以是任意長度的一維數(shù)組。
  • 豎直堆疊函數(shù)np.vstack():ndarrays 序列除了第一個軸外,數(shù)組必須具有相同的形狀。一維數(shù)組必須具有相同的長度。

具體代碼:

# 方法2:使用numpy的水平堆疊和豎直堆疊完成所有圖像的堆疊,最后一起顯示    vs1 = np.hstack((img, invert))  # 水平堆疊    vs2 = np.hstack((gaussianBlur, flip))  # 水平堆疊    result = np.vstack((vs1, vs2))  # 豎直堆疊

效果展示:

整個項目的完整代碼:
# -*-coding:utf-8-*-'''File Name: color_operation.pyProgram IDE: PyCharmCreate File By Author: Hong'''import cv2 as cvimport numpy as np

def image_display(image_path: str):''' 多個圖像在一個窗口內(nèi)顯示 :param image_path: 傳入圖像路徑 :return: ''' img = cv.imread(image_path, cv.IMREAD_COLOR)
# 顏色取反 invert = cv.bitwise_not(img)# 高斯模糊 gaussianBlur = cv.GaussianBlur(img, (0, 0), 10)# 鏡像 flip = cv.flip(img, 1) # 0表示繞x軸翻轉(zhuǎn);1表示繞y軸翻轉(zhuǎn);-1表示繞兩個軸翻轉(zhuǎn)
# 方法1:創(chuàng)建一個畫布,將所有圖像復制到畫布中,最后顯示畫布 h, w, _ = img.shape
img_list = [img, invert, gaussianBlur, flip]
four_view = np.zeros((h * 2 + 10, w * 2 + 10, 3), np.uint8) four_view[:, :] = 255 # 給所有通道的像素值賦值255for i in range(len(img_list)): row = i // 2 col = i % 2 print(row, col)# 將小圖像復制到大畫布上。 np.copyto(four_view[(h + 10) * row:h * (row + 1) + 10 * row, (w + 10) * col:w * (col + 1) + 10 * col], img_list[i]) cv.imshow('result', four_view)
# 方法2:使用numpy的水平堆疊和豎直堆疊完成所有圖像的堆疊,最后一起顯示 vs1 = np.hstack((img, invert)) # 水平堆疊 vs2 = np.hstack((gaussianBlur, flip)) # 水平堆疊 result = np.vstack((vs1, vs2)) # 豎直堆疊
# 初略解決imshow()中文亂碼顯示的問題。不能完全解決,有些中文無法顯示。這是python-opencv的弊端def zh_ch(string):return string.encode('gbk').decode(errors='ignore')
cv.imshow(zh_ch('圖片'), result)
cv.waitKey(0) cv.destroyAllWindows()

if __name__ == '__main__': path = 'images/daiyutong.png'    image_display(path)



·END·

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用Python OpenCV進行實時車道檢測
好玩的OpenCV:圖像操作的基本知識(2)
python+opencv圖像金字塔融合 (超詳細講解原理及代碼講解 )之二
在 Python 中使用 OpenCV 制作簡單圖像動畫
python opencv檢測目標顏色
python+opencv圖像處理(四十二)
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服