2

重複の可能性:
OpenCV で ROI を設定するには?

画像にスムージング/ぼかしフィルターを使用しようとしていますが、ソースの特定のパス/領域でのみ使用できます。(現在openCVを使用)

どうすればそれができますか?

今、私は次のようなことをしています

cv::GaussianBlur(im, newim, cv::Size(5,5),1.5);

しかし、私はやりたいです

cv::GaussianBlur(im, newim, cv::Size(5,5),1.5,MyClosedPath);

簡単に実行できる場合は、任意の ios クラスを使用することもできます。(その方法もまだ見つかっていません)

4

1 に答える 1

4

元の行列から部分行列を取得できます。例:

cv::Mat subMat = originalMatrix(cv::Rect(x, y, width, height));

ここで、x、y、width、heightはサブイメージの位置です。次に、部分行列でガウスぼかしを実行します。

[編集]複雑な形状をぼかしたい場合、1つの方法は、画像全体をぼかしてから、ぼかした部分のマスクでmat.copyToを使用することです。

cv::Mat mask = ?; // this should be a CV_8U image with 0 pixels everywhere but where you want to blur the original image
cv::Mat blurred;
cv::gaussianBlur(image, blurred, cv::Size(5,5),1.5);
cv::Mat output = image.clone();
blurred.copyTo(output, mask);
于 2012-10-08T12:55:54.327 に答える