OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
無縫克隆

詳細描述

實用連結

https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp

列舉

列舉  cv::SeamlessCloneFlags {
  cv::NORMAL_CLONE = 1 ,
  cv::MIXED_CLONE = 2 ,
  cv::MONOCHROME_TRANSFER = 3 ,
  cv::NORMAL_CLONE_WIDE = 9 ,
  cv::MIXED_CLONE_WIDE = 10 ,
  cv::MONOCHROME_TRANSFER_WIDE = 11
}
 無縫克隆演算法的標誌。 更多...
 

函式

void cv::colorChange (InputArray src, InputArray mask, OutputArray dst, float red_mul=1.0f, float green_mul=1.0f, float blue_mul=1.0f)
 給定原始彩色影像,可以將此影像的兩種不同著色版本無縫混合。
 
void cv::illuminationChange (InputArray src, InputArray mask, OutputArray dst, float alpha=0.2f, float beta=0.4f)
 透過對選區內的梯度場應用適當的非線性變換,然後使用泊松求解器反向積分,可以在區域性修改影像的表觀光照。
 
void cv::seamlessClone (InputArray src, InputArray dst, InputArray mask, Point p, OutputArray blend, int flags)
 執行無縫克隆以將源影像中的區域混合到目標影像中。 此函式專為本地影像編輯而設計,允許輕鬆無縫地應用僅限於某個區域(手動選擇為 ROI)的更改。 這些更改的範圍可以從輕微的扭曲到新內容的完全替換 [218]
 
void cv::textureFlattening (InputArray src, InputArray mask, OutputArray dst, float low_threshold=30, float high_threshold=45, int kernel_size=3)
 透過僅保留邊緣位置的梯度,然後在與泊松求解器積分之前,可以消除所選區域的紋理,使其內容具有扁平外觀。 這裡使用了 Canny 邊緣檢測器。
 

列舉型別文件

◆ SeamlessCloneFlags

#include <opencv2/photo.hpp>

無縫克隆演算法的標誌。

列舉器
NORMAL_CLONE 
Python: cv.NORMAL_CLONE

普通無縫克隆。 此方法非常適合將具有複雜輪廓的物件插入到新的背景中。 它保留了插入物件的原始外觀和光照,確保了自然的融合。

MIXED_CLONE 
Python: cv.MIXED_CLONE

混合無縫克隆。 此方法解決了基於簡單顏色的選擇或 Alpha 掩碼耗時並且可能導致不良光暈的情況。 透過組合來自源的結構和來自目標的紋理,混合無縫克隆非常有效,即使使用鬆散定義的選擇也是如此。

MONOCHROME_TRANSFER 
Python: cv.MONOCHROME_TRANSFER

單色轉移克隆。 此方法允許使用者用替代特徵替換物件的特定特徵,例如灰度紋理或圖案。 它特別適用於藝術效果或有針對性的物件修改。

NORMAL_CLONE_WIDE 
Python: cv.NORMAL_CLONE_WIDE

增強型普通無縫克隆。 類似於 NORMAL_CLONE,但採用了一種高階的 ROI(感興趣區域)計算方法。 此模式透過考慮整個掩碼區域而不是僅考慮非零畫素的邊界矩形來處理更大的源區域。

MIXED_CLONE_WIDE 
Python: cv.MIXED_CLONE_WIDE

增強型混合無縫克隆。 類似於 MIXED_CLONE,但採用了一種高階的 ROI(感興趣區域)計算方法。 此模式透過考慮整個掩碼區域而不是僅考慮非零畫素的邊界矩形來處理更大的源區域。

MONOCHROME_TRANSFER_WIDE 
Python: cv.MONOCHROME_TRANSFER_WIDE

增強型單色轉移克隆。 類似於 MONOCHROME_TRANSFER,但採用了一種高階的 ROI(感興趣區域)計算方法。 此模式透過考慮整個掩碼區域而不是僅考慮非零畫素的邊界矩形來處理更大的源區域。

函式文件

◆ colorChange()

void cv::colorChange ( InputArray src,
InputArray mask,
OutputArray dst,
float red_mul = 1.0f,
float green_mul = 1.0f,
float blue_mul = 1.0f )
Python
cv.colorChange(src, mask[, dst[, red_mul[, green_mul[, blue_mul]]]]) -> dst

#include <opencv2/photo.hpp>

給定原始彩色影像,可以將此影像的兩種不同著色版本無縫混合。

引數
src輸入 8 位 3 通道影像。
mask輸入 8 位 1 或 3 通道影像。
dst輸出影像,其大小和型別與 src 相同。
red_mulR 通道乘法因子。
green_mulG 通道乘法因子。
blue_mulB 通道乘法因子。

乘法因子介於 0.5 到 2.5 之間。

◆ illuminationChange()

void cv::illuminationChange ( InputArray src,
InputArray mask,
OutputArray dst,
float alpha = 0.2f,
float beta = 0.4f )
Python
cv.illuminationChange(src, mask[, dst[, alpha[, beta]]]) -> dst

#include <opencv2/photo.hpp>

透過對選區內的梯度場應用適當的非線性變換,然後使用泊松求解器反向積分,可以在區域性修改影像的表觀光照。

引數
src輸入 8 位 3 通道影像。
mask輸入 8 位 1 或 3 通道影像。
dst與 src 具有相同大小和型別的輸出影像。
alpha值範圍介於 0-2 之間。
beta值範圍介於 0-2 之間。

這對於突出顯示曝光不足的前景物件或減少鏡面反射很有用。

◆ seamlessClone()

void cv::seamlessClone ( InputArray src,
InputArray dst,
InputArray mask,
Point p,
OutputArray blend,
int flags )
Python
cv.seamlessClone(src, dst, mask, p, flags[, blend]) -> blend

#include <opencv2/photo.hpp>

執行無縫克隆以將源影像中的區域混合到目標影像中。 此函式專為本地影像編輯而設計,允許輕鬆無縫地應用僅限於某個區域(手動選擇為 ROI)的更改。 這些更改的範圍可以從輕微的扭曲到新內容的完全替換 [218]

引數
src源影像(8 位 3 通道),從中將區域混合到目標中。
dst目標影像(8 位 3 通道),將在此處混合源影像。
mask一個二進位制掩碼(8 位,1、3 或 4 通道),指定要混合的源影像中的區域。 非零畫素表示要混合的區域。 如果提供了空的 Mat,則會在內部建立一個所有非零畫素的掩碼。
psrc 影像的中心放置在 dst 影像中的點。
blend輸出影像,儲存無縫克隆的結果。 它具有與 dst 相同的大小和型別。
flags控制克隆方法型別的標誌,可以採用 cv::SeamlessCloneFlags 的值。

◆ textureFlattening()

void cv::textureFlattening ( InputArray src,
InputArray mask,
OutputArray dst,
float low_threshold = 30,
float high_threshold = 45,
int kernel_size = 3 )
Python
cv.textureFlattening(src, mask[, dst[, low_threshold[, high_threshold[, kernel_size]]]]) -> dst

#include <opencv2/photo.hpp>

透過僅保留邊緣位置的梯度,然後在與泊松求解器積分之前,可以消除所選區域的紋理,使其內容具有扁平外觀。 這裡使用了 Canny 邊緣檢測器。

引數
src輸入 8 位 3 通道影像。
mask輸入 8 位 1 或 3 通道影像。
dst與 src 具有相同大小和型別的輸出影像。
low_threshold範圍從 0 到 100。
high_threshold值 > 100。
kernel_size要使用的 Sobel 核的大小。
注意
該演算法假定源影像的顏色接近目標影像的顏色。 這種假設意味著當顏色不匹配時,源影像顏色會向目標影像的顏色傾斜。