知識前に準備1
ヌル
図2は、主にOpenCVのAPIを使用しました
スキップ
3プログラムコード
書式#include <opencv2 / opencv.hpp> の#include <iostreamの> 使用して名前空間の品種; 使用して名前空間はstdを、INTメイン(int型 ARGC、チャー ** ARGV) { マットSRC =関数imread(" G:\\ CVworkstudy \\ program_wwx \\研究society140 \\ ZhaiZhigang140 \\ colormap.png " )。 namedWindow(" 入力" 、WINDOW_AUTOSIZE)。 関数imshow(" 入力" 、SRC); INT H = src.rows。 int型ワット= src.cols。// ROIの取得 int型 CY = H / 2 。 INT CX = W / 2 。 RECT RECT(CX - 100、CY - 100、200、200 )。 マットROI = SRC(RECT)。 関数imshow(" ROI " 、ROI); マット画像 = roi.clone()。 // 変更ROI roi.setTo(スカラー(255、0、0 )); 関数imshow(" 結果" 、SRC); // MODIFコピーROI image.setTo(スカラー(255、0、0 )); 関数imshow(" 結果" 、SRC); 関数imshow(" コピーROI " 、画像)。 // ROIと例-マスク生成 マットSRC2 =関数imreadを(" G:\\ CVworkstudy \\ program_wwx \\研究society140 \\ ZhaiZhigang140 \\ zhengjianzhao.jpg " )。 関数imshow(" SRC2 " 、SRC2)。 マットHSV、マスク。 cvtColor(SRC2、HSV、COLOR_BGR2HSV)。 // これは、DST(I)は、SRC(I)の範囲内であれば255(すべて1 -bits)に設定されている //指定された1D、2D、3D、...ボックスとそれ以外の場合は0。 INRANGE(HSV、スカラー(100、43、46)、スカラー(124、255、255)、マスク)。// 255への賢いセット内で、ない場合は、0に設定 関数imshow(「マスク」、マスク)。// マスク排他的な人を取得 // エキス人ROI マット者を、 bitwise_not(マスク、マスク)。 マットカーネル = getStructuringElement(MORPH_RECT、サイズ(3、3 ))。 morphologyEx(マスク、マスク、MORPH_CLOSE、カーネル)。 bitwise_and(SRC2、SRC2、人、マスク)。 関数imshow(「人」、人)。 // 生成背景 マット結果= マット::ゼロ(src2.size()、src2.type())。 result.setTo(スカラー(0、0、255 )); // 背景+人物コンバイン マットDSTを、 bitwise_not(マスク、マスク)。 bitwise_or(人、その結果、DST、マスク)。 (DST、人、DST)を追加します。 関数imshow(" DST " 、DST); waitKey(0 )。 リターン 0 ; }
4つの実行結果
図は、いくつかの後、背景色が赤、青の色範囲HSV表参照によって置換交換パスポートを達成することである省略する。
OpenCVの009 ---色空間と色空間変換
5拡張および注意事項
ヌル