OpenCVのコンピュータビジョン(3)ピクセル操作

ピクセル操作画像ピクセル値を変更することです

コードは以下の通りであります:

書式#include <opencv2 / opencv.hpp>
の#include <iostreamの>

名前空間の品種を使用しました。
名前空間stdを使用。

int型のmain(int型のargc、char型** ARGV){
coutの<< "Hello Worldの!" <<てendl;
マットSRC =関数imread( "D:/OpenCVprj/image/test.png")。
namedWindow( "入力画像"、CV_WINDOW_AUTOSIZE)。
関数imshow( "入力画像"、SRC)。

//画素oprationの
マットsrc_gray。
cvtColor(SRC、src_gray、CV_BGR2GRAY)。
行= src_gray.rowsをint型。
int型のcols = src_gray.cols。
INTチャネル= src.channels()。
namedWindow( "src_gray"、CV_WINDOW_AUTOSIZE)。
関数imshow( "src_gray"、src_gray)。

マットDST。
dst.create(src.size()、src.type())。

用(INT列= 0、行<行、行++){
ための(int型COL = 0、COL <COLS; COL ++){
IF(チャネル== 1){
int型グレー= src_gray.at <UCHAR>(行、列) ;
dst.at <UCHAR>(行、列)= 255 -グレー。
}
他の場合(チャネル== 3){
int型B = src.at <Vec3b>(行、列)[0];
INT G = src.at <Vec3b>(行、列)[1]。
INT R = src.at <Vec3b>(行、列)[2]。
dst.at <Vec3b>(行、列)[0] = 255 - B。
dst.at <Vec3b>(行、列)[1] = 255 - G。
dst.at <Vec3b>(行、列)[2] = 255 - R。
}
}
}

namedWindow( "DST"、CV_WINDOW_AUTOSIZE)。
関数imshow( "DST"、DST);
waitKey(0)。
0を返します。
}

結果:

 

 

この操作はbitwise_not(画像、DST)に対応します。

すなわち、255のような各画素の値 - ピクセル。

コードは以下の通りであります:

書式#include <opencv2 / opencv.hpp>
の#include <iostreamの>

名前空間stdを使用。
名前空間の品種を使用しました。

int型のmain(int型のargc、char型** ARGV){
coutの<< "Hello Worldの!" <<てendl;
マットSRC =関数imread( "D:/OpenCVprj/image/test.png")。
namedWindow( "SRC"、CV_WINDOW_AUTOSIZE)。
関数imshow( "SRC"、SRC);

マットDST。
bitwise_not(SRC、DST);
namedWindow( "DST"、CV_WINDOW_AUTOSIZE)。
関数imshow( "DST"、DST);
waitKey(0)。
0を返します。
}

結果は以下の通りであります:

 

その他の動作は異なるの効果を確認するために行うことができます

 

結果は以下の通りであります:

おすすめ

転載: www.cnblogs.com/haiboxiaobai/p/11220480.html