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

知識前に準備1

各色の範囲に対応

図2は、主にOpenCVのAPIを使用しました

/ ** @briefは別の色空間から画像を変換します。

@param SRC入力画像:8ビットの符号なし16ビットの符号なし(CV_16UC ...)、または単精度
浮動小数点。
srcと同じ大きさと深さの@param DST出力画像。
@paramコード色空間変換コード(#ColorConversionCodesを参照)。
宛先画像におけるチャネルの@param dstCn数。パラメータが0である場合、多数の
チャネルは、srcおよびコードから自動的に導出されます。

@see @ref imgproc_color_conversions
* /

CV_EXPORTS_W ボイド cvtColor(InputArray SRC、OutputArray DST、INTコード、INT dstCn = 0)。


/ ** @briefチェックアレイ要素が他の二つの配列の要素の間にある場合。

SRC(I)の範囲内である場合には、DST(I)は、(すべて1 -bits)255に設定されている
特記の1D、2D、3D、...ボックス、0。

下部及び/又は上部境界パラメータがスカラーである場合、インデックス
上記式中lowerbとupperbで(I)は省略されるべきです。
SRC最初の入力配列を@param。
@paramのlowerb含め下限配列またはスカラー。
包括上限配列またはスカラーupperb @param。
srcとCV_8U型と同じサイズの@param DST出力アレイ。
* /

CV_EXPORTS_W 無効INRANGE(InputArray SRC、InputArray lowerb、
                          InputArray upperb、OutputArray DST)。

/ ** @briefは、正規化されたボックスフィルタを用いて画像をぼかし。

機能はカーネルを使用して、画像を滑らかに:

@param SRC入力画像。それは独立して処理されたチャネル、任意の数を有することができるが、
深さがCV_8U、CV_16U、CV_16S、CV_32F又はCV_64Fであるべきです。
srcと同じサイズおよびタイプの@param DST出力画像。
@paramはカーネルサイズをぼかしksize。
@paramアンカーアンカーポイント。デフォルト値のポイント(-1、-1)アンカーがカーネルであることを意味し
、中心。
画像の外側の画素を推定するために使用@param borderType境界モード、#BorderTypes参照
@sa boxFilter、bilateralFilter、GaussianBlur、medianBlurを
* /

CV_EXPORTS_W ぼかし(InputArray SRC、OutputArray DST、
                        サイズksize、ポイントアンカー =ポイント( - 1、 - 1 )、
                         int型 borderType = BORDER_DEFAULT);

/ ** @briefは、メディアンフィルタを使用して画像をぼかし。

メディアンフィルタは、境界ピクセルに対処するために内部#BORDER_REPLICATEを使用しています@note、#BorderTypesを参照してください

@paramのsrc入力1-、3-、または4チャンネル画像。ksizeは3または5である場合、画像の深さであるべき
CV_8U、CV_16U、又はCV_32F、大きな開口サイズのために、それだけCV_8Uすることができます。
srcと同じサイズおよびタイプの@paramのDST宛先アレイ。
@param ksize絞りリニアサイズ。それは例えば、奇数および1以上でなければなりません:3、5、7 ...
@sa bilateralFilterは、boxFilterをぼかし、GaussianBlur
* /

CV_EXPORTS_W 無効 medianBlur(InputArray SRC、OutputArray DST、int型 ksize)。

3プログラムコード

#include " opencv2の\のopencv.hpp " 
の#include <iostreamの> 使用して名前空間STD;
 使用名前空間CV; int型のmain(int型 ARGC、チャー ** ARGV)
{ 
    SRCマット =関数imread(" G:program_wwx \\ \\ \\ CVworkstudyをYanxishe ZhaiZhigang140 \\ lena.jpg \\ 140時間" );
     IF (src.empty())
    { 
        のprintf(" N- \ ...画像をロードできませんでした" );
         を返す - 1。; 
    } // 色空間変換

  



    
    マットyuvImg、hsvImg、ycrcbImg。
    cvtColor(SRC、yuvI​​mg、CV_BGR2YUV)。
    cvtColor(SRC、hsvImg、CV_BGR2HSV)。
    cvtColor(SRC、ycrcbImg、CV_BGR2YCrCb)。
    // 图像显示 
    関数imshow(" YUV " 、yuvI​​mg)。
    関数imshow(" HSV " 、hsvImg)。
    関数imshow(" のYCrCb " 、ycrcbImg)。

    マットgetColorImg、getMask、getMask1。
    getColorImg =関数imread(" G:\\ CVworkstudy \\ program_wwx \\研习社140课时\\ ZhaiZhigang140 \\ myPhoto.jpg " )。
    // 関数imshow( "MyPhoto"、getColorImg)。
    cvtColor(getColorImg、getColorImg、CV_BGR2HSV); // 色抽出HSV色空間を変換する必要がある
     。// つまり、DST(I)は(すべての-bits 1。)255に設定されているSRC(I)はザ・は内にある場合
     // 指定。1D、2D、3D、...と、そうでなければ0ボックス 
    INRANGE(getColorImg、スカラー(10043で46れている)、スカラー(124255255)、getMask); // 青色範囲では、255に変換されます。 、他方は0である 
    ((getMask、getMask1、サイズブラー5。 5。 )); // 平均値ぼかしフィルタは、あろうエッジ 
    関数imshow(" getMask1 "、getMask1)を、
    medianBlur(getMask、getMask、5); // エッジプロファイル小さなにメディアンフィルタ効果 
    関数imshow(" GetMask " 、getMask); 

    waitKeyは(0 );
     戻り 0 ; 
}

4つの実行結果

5拡張および注意事項

ヌル

おすすめ

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