I.はじめに
階調(グレースケール画像)、256に黒の間のグレーの色合いに白
図RGBの3つの色成分は、800 * 800図ピクセルを想定し、RGBを表す3つの800×800のマトリックスであります
二値化処理設定された閾値は、画素値が閾値(白)になり、画素値が閾値外である0(黒)になります
II。グレースケール
1.実装
CV ::マットsrcImage。 CV ::マットsrcGray。 CV :: cvtColor(srcImage、srcGray、CV_RGB2GRAY)。
2.原理
(1)浮動小数点演算
グレー= R * 0.3 + G * 0.59 + B * 0.11
(2)メソッド整数
グレー=(R * 30 + G * 59 + B * 11)/ 100
(3)シフト法
グレー=(R * 76 + G * 151 + B * 28)>> 8。
(4)平均法
グレー=(R + G + B)/ 3
(5)のみの緑を取ります
グレー= G
III。二値化
CV ::マットimgGray。 CV ::マット結果; CV ::閾値(imgGray、その結果、100255、CV_THRESH_BINARY)。
IV。ノイズに参加
ボイド塩(CV ::マット画像、INT n)が{ iは、jはint型。 用(int型のk = 0; K <Nであり、k ++){ I = STD ::ランド()%のimage.cols。//行数 J =のstd ::ランド()%のimage.rows。//列数 であれば(image.type()== CV_8UC1){ //图像灰度 image.at <UCHAR>(J、I)= 255。 } そうであれば(image.type()== CV_8UC3){ //图像彩色 image.at <CV :: Vec3b>(J、I)[0] = 255。 image.at <CV :: Vec3b>(J、I)[1] = 255。 image.at <CV :: Vec3b>(j、i)に対して[2] = 255。 } } }
//调用 INTメイン() { CV ::マットimag1 = CV ::関数imread( "a.jpg")。 塩(imag1,3000)。 CV :: namedWindow( "イメージ")。 CV ::関数imshow( "イメージ"、imag1)。 CV :: waitKey(0); システム(「一時停止」)。 0を返します。 }