OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

詳細説明

参考リンク:

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

列挙型

enum  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
}
 seamlessClone アルゴリズム用のフラグ。 続き...
 

関数

void cv::colorChange (InputArray src, InputArray mask, OutputArray dst, float red_mul=1.0f, float green_mul=1.0f, float blue_mul=1.0f)
 元のカラー画像が与えられたとき、この画像の異なる2色のバージョンをシームレスに混合できる。
 
void cv::illuminationChange (InputArray src, InputArray mask, OutputArray dst, float alpha=0.2f, float beta=0.4f)
 選択領域内の勾配場に適切な非線形変換を適用し、その後Poissonソルバで積分し直すことで、画像の見かけの照明を局所的に変更する。
 
void cv::seamlessClone (InputArray src, InputArray dst, InputArray mask, Point p, OutputArray blend, int flags)
 シームレスクローニングを実行し、ソース画像の領域を出力先画像に合成する。この関数はローカルな画像編集向けに設計されており、(ROI として手動で選択された)領域に限定した変更を簡単かつシームレスに適用できる。これらの変更は、わずかな歪みから新規コンテンツによる完全な置き換えまでさまざまである [222]
 
void cv::textureFlattening (InputArray src, InputArray mask, OutputArray dst, float low_threshold=30, float high_threshold=45, int kernel_size=3)
 Poisson ソルバで積分する前にエッジ位置の勾配のみを保持することで、選択した領域のテクスチャを消し去り、その内容を平坦な印象にする。ここでは Canny エッジ検出器を使用している。
 

列挙型詳解

◆ SeamlessCloneFlags

#include <opencv2/photo.hpp>

seamlessClone アルゴリズム用のフラグ。

列挙値
NORMAL_CLONE 
Python: cv.NORMAL_CLONE

通常のシームレスクローン。この手法は、複雑な輪郭を持つ物体を新しい背景に挿入するのに最適である。挿入された物体の元の見た目と照明を保持し、自然なブレンドを実現する。

MIXED_CLONE 
Python: cv.MIXED_CLONE

ミックスシームレスクローン。この手法は、単純な色ベースの選択やアルファマスキングが時間を要し、好ましくないハロー(光輪)を生じる場合に対処する。ソースの構造とデスティネーションのテクスチャを組み合わせることで、ミックスシームレスクローンは、選択が大まかに定義されていても非常に効果的である。

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>

元のカラー画像が与えられたとき、この画像を異なる色で着色した2つのバージョンをシームレスに混合できる。

引数
src入力の8ビット3チャンネルの画像。
mask入力の8ビット1または3チャンネル画像。
dstsrc と同じサイズおよび型を持つ出力画像。
red_mulRチャンネルの乗算係数。
green_mulGチャンネルの乗算係数。
blue_mulBチャンネルの乗算係数。

乗算係数は .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>

選択範囲内の勾配場に適切な非線形変換を適用し、Poissonソルバで積分し直すことで、画像の見かけ上の照明を局所的に変更する。

引数
src入力の8ビット3チャンネルの画像。
mask入力の8ビット1または3チャンネル画像。
dstsrc と同じサイズ・型の出力画像。
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として手動で選択した)領域に限定した変更を手間なくシームレスに適用できる。これらの変更は、わずかな歪みから新規コンテンツによる完全な置き換えまで幅広く対応する [222]

引数
srcソース画像(8ビット3チャンネル)。ここから領域がデスティネーションへブレンドされる。
dstデスティネーション画像(8ビット3チャンネル)。ここに src 画像がブレンドされる。
maskソース画像内のブレンド対象領域を指定するバイナリマスク(8ビット、1、3、または4チャンネル)。非ゼロのピクセルがブレンド対象領域を示す。空の Mat が渡された場合は、すべて非ゼロのピクセルからなるマスクが内部的に生成される。
pdst 画像内で src 画像の中心が配置される点。
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>

エッジ位置の勾配のみを保持してPoissonソルバで積分することで、選択範囲のテクスチャが消し去られ、その内容は平坦な見た目になる。ここではCannyエッジ検出器を使用している。

引数
src入力の8ビット3チャンネルの画像。
mask入力の8ビット1または3チャンネル画像。
dstsrc と同じサイズ・型の出力画像。
low_threshold0から100までの範囲。
high_threshold値 > 100。
kernel_size使用するSobelカーネルのサイズ。
覚え書き
このアルゴリズムは、ソース画像の色がデスティネーションの色に近いことを前提とする。この前提のため、色が一致しない場合は、ソース画像の色がデスティネーション画像の色に向かって着色される。