1. 程式人生 > 程式設計 >python opencv把一張圖片嵌入(疊加)到另一張圖片上的實現程式碼

python opencv把一張圖片嵌入(疊加)到另一張圖片上的實現程式碼

python opencv把一張圖片嵌入(疊加)到另一張圖片上

1、背景:

最近做了個煙火生成系統的介面設計,需要將煙霧圖片嵌入到任意一張圖片中,因此需要python opencv把一張圖片嵌入(疊加)到另一張圖片上的知識。(圖中紅框最終生成圖片沒有的,只是介面有這個功能)

2、程式碼

resized1[global_y0:height+global_y0,global_x0:weight+global_x0] = resized0

resized0是小圖
resized1是大圖,其他引數是左上點和右下點

3、效果圖

在這裡插入圖片描述

工程中部分程式碼

這個是擷取我pyqt5中部分程式碼,具體實現,可以借鑑一下

resized1 = cv.imread('temp0.jpg')#讀取最開始讀入的圖片
    #cv.imshow('resized1-0.jpg',resized1)
    #cv.waitKey(10)
    img = cv.imread('output.jpg')#讀取生成的煙霧圖

    resized0 = cv.resize(img,(weight,height),interpolation=cv.INTER_AREA)
    #cv.imshow('resized0.jpg',resized0)
    #cv.waitKey(10)

    #嵌入圖片,resized1是原圖,resized0是煙霧圖片,中括號內為嵌入的座標
    resized1[global_y0:height+global_y0,global_x0:weight+global_x0] = resized0
    #cv.imshow('resized1.jpg',resized1)
    cv.imwrite('temp1.jpg',resized1)
    resized2 = resized1 # 將最終生成的圖片複製到全域性變數中,在儲存按鈕中進行儲存
    #cv.imwrite('resized2.jpg',resized2)
    global final_picture # 此處宣告該圖片為全域性變數
    final_picture=resized2 #將最終生成的圖片複製到全域性變數中,在儲存按鈕中進行儲存
    #cv.imwrite('final_picture0.jpg',final_picture)
    #cv.waitKey(10)
    height,width,bytesPerComponent = resized1.shape #取彩色圖片的長、寬、通道
    bytesPerLine = 3 * width
    cv.cvtColor(resized1,cv.COLOR_BGR2RGB,resized1)
    QImg = QImage(resized1.data,height,bytesPerLine,QImage.Format_RGB888)
    pixmap = QPixmap.fromImage(QImg)

    self.label_ShowPicture.setPixmap(pixmap)
    #self.label_ShowPicture.setPixmap(QPixmap("resized1.jpg"))
    self.label_ShowPicture.setCursor(Qt.CrossCursor)
    print("已經嵌入")

總結

到此這篇關於python opencv把一張圖片嵌入(疊加)到另一張圖片上的實現程式碼的文章就介紹到這了,更多相關python opencv圖片嵌入另一張圖片上內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!