OpenGL de プログラミング - ネガポジ反転
現在地 >> メニュー >> サンプルコード::OpenCV >> ネガポジ反転


問題


以下の画像を読み込んで、ネガポジ反転処理をせよ。

画像


ネガポジ反転2

答え


#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

int main( int argc, char **argv)
{
IplImage *imgA = cvLoadImage( "test2.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
std::exit(0);
}


for(int j = 0; j < imgA->height;j++)
for( int i = 0; i < imgA->widthStep;i+=3)
{
imgA->imageData[j*imgA->widthStep + i]=(char(255) - imgA->imageData[j*imgA->widthStep+i]);
imgA->imageData[j*imgA->widthStep +i+1]=(char(255) - imgA->imageData[j*imgA->widthStep +i+1]);
imgA->imageData[j*imgA->widthStep +i+2]=(char(255) - imgA->imageData[j*imgA->widthStep +i+2]);
}


cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);

cvWaitKey(0); // 0秒待つ => ずっと入力待ち


cvReleaseImage( &imgA );

cvDestroyWindow("window");

return 0;
}


メモ


各画素にnotをとっても同じ結果になる