亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 openCV python 用另一個圖像替換圖像的蒙版部分?

如何使用 openCV python 用另一個圖像替換圖像的蒙版部分?

斯蒂芬大帝 2021-11-23 18:02:27
目標是用另一個圖像替換圖像的一部分。我打算做的是獲取原始照片的片段圖,并將原始照片的選定部分替換為另一張圖像。例如,這是原始照片的分段圖的照片:我想用另一個人模型(不同的人)替換那個粉紅色段面具:我該怎么做?我正在考慮根據粉紅色(RGB 值為 192,128,128)和bitwise_and兩個圖像選擇一個 ROI ?但我不太確定如何做到這一點,或者這是否是最好的方法。我知道粉紅色的面具和樣品人不是完全合適的,但我只想先將模型擬合到粉紅色的部分,然后再縮放或變換它。任何建議都會很棒!謝謝!
查看完整描述

2 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

加載庫并讀取圖像


from __future__ import division

import cv2

import numpy as np


guy_img = cv2.imread('path')

target_img = cv2.imread('path')

獲取男人(每個非零像素)和目標蒙版(粉紅色區域)的邊界框。


a = np.where(guy_img > 0)

b = np.where(target_img == 129)  # picked one of the channels in your image

bbox_guy = np.min(a[0]), np.max(a[0]), np.min(a[1]), np.max(a[1])

bbox_mask = np.min(b[0]), np.max(b[0]), np.min(b[1]), np.max(b[1])

請注意,當我加載目標圖像時,值與您提供的值不同。圖像邊緣也有一些白色像素。這可能只是因為圖像被上傳到 imgur 并被下載。如果您的值是正確的,并且除了粉紅色區域之外,您的圖像的其余部分都是完全黑色的,您可以像使用np.where(target_img > 0).


現在只獲取 Guy 和 mask 區域的值


guy = guy_img[bbox_guy[0]:bbox_guy[1], bbox_guy[2]:bbox_guy[3],:]

target = target_img[bbox_mask[0]:bbox_mask[1], bbox_mask[2]:bbox_mask[3],:]

將人調整為與面具相同的比例/形狀


guy_h, guy_w, _ = guy.shape

mask_h, mask_w, _ = target.shape

fy = mask_h / guy_h

fx = mask_w / guy_w

scaled_guy = cv2.resize(guy, (0,0), fx=fx,fy=fy)

使用男人圖像值重新分配目標圖像的遮罩區域


for i, row in enumerate(range(bbox_mask[0], bbox_mask[1])):

    for j, col in enumerate(range(bbox_mask[2], bbox_mask[3])):

        target_img[row,col,:] = scaled_guy[i,j,:]


cv2.imshow('', target_img)

cv2.waitKey(0)


查看完整回答
反對 回復 2021-11-23
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

首先,在繼續實施之前,您需要考慮幾件事。

  • 蒙版圖像的背景一致嗎?蒙面斑點的顏色一致?

  • 蒙版的大小和要添加圖像的對象。

我建議您首先在粉紅色分割圖像上找到 ROI 的大小、顏色和位置。根據遮罩圖像縮放對象(男孩圖像)的尺寸,因此更容易將對象圖像遮罩到粉紅色部分。

然后,您可以創建一個尺寸類似于蒙版圖像的圖像(我們稱之為第一步圖像)。將縮放的對象圖像添加到從粉紅色斑點分析獲得的位置。這樣,您將擁有兩個具有相似尺寸和相似比例的圖像。

使用第一步圖像和粉紅色 ROI 應該很容易在視覺上重疊。

如果您想要精確的粉紅色,那么如果蒙版圖像上的相同位置像素為黑色,則將第一步圖像上的所有像素替換為黑色像素。否則就讓它成為它本來的樣子。

if(mask[i][j] == black){ step_one[i][j] = black }

這使得粉紅色部分被對象圖像掩蓋了。


查看完整回答
反對 回復 2021-11-23
  • 2 回答
  • 0 關注
  • 518 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號