OpenCVの015 --- ROIとROI画像OpenCVの009 ---オペレーティング色空間および色空間変換

知識前に準備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 - 100200200 )。
    マットROI = SRC(RECT)。
    関数imshow(" ROI " 、ROI); 

    マット画像 = roi.clone()。
    // 変更ROI 
    roi.setTo(スカラー(25500 )); 
    関数imshow(" 結果" 、SRC); 
    
    // MODIFコピーROI
    image.setTo(スカラー(25500 )); 
    関数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、スカラー(1004346)、スカラー(124255255)、マスク)。// 255への賢いセット内で、ない場合は、0に設定 
    関数imshow(マスク、マスク)。// マスク排他的な人を取得

    // エキス人ROI 
    マット者を、
    bitwise_not(マスク、マスク)。
    マットカーネル = getStructuringElement(MORPH_RECT、サイズ(33 ))。
    morphologyEx(マスク、マスク、MORPH_CLOSE、カーネル)。
    bitwise_and(SRC2、SRC2、人、マスク)。
    関数imshow(、人)。

    // 生成背景 
    マット結果= マット::ゼロ(src2.size()、src2.type())。
    result.setTo(スカラー(00255 )); 

    // 背景+人物コンバイン
    マットDSTを、
    bitwise_not(マスク、マスク)。
    bitwise_or(人、その結果、DST、マスク)。
    (DST、人、DST)を追加します。

    関数imshow(" DST " 、DST); 
    waitKey(0 )。
    リターン 0 ; 
}

 

4つの実行結果

図は、いくつかの後、背景色が赤、青の色範囲HSV表参照によって置換交換パスポートを達成することである省略する。

OpenCVの009 ---色空間と色空間変換

5拡張および注意事項

ヌル

おすすめ

転載: www.cnblogs.com/Vince-Wu/p/11391561.html