最終更新: mikk_ni3_92 2007年10月21日(日) 21:16:25履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> ポスタリゼーション
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace std;
void POSTERIZATION(IplImage *img);
int main( int argc, char **argv)
{
IplImage *imgA = cvLoadImage( "test3.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
exit(0);
}
POSTERIZATION(imgA);
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);
cvWaitKey(0); // 0秒待つ => ずっと入力待ち
cvReleaseImage( &imgA );
cvDestroyWindow("window");
return 0;
}
void POSTERIZATION(IplImage *img)
{
for(int i = 0; i<img->imageSize; i++)
{
if( unsigned(img->imageData[i]) <32)
{
img->imageData[i]=0;
}
else if( unsigned(img->imageData[i]) <64)
{
img->imageData[i]=32;
}else if(unsigned(img->imageData[i]) <96)
{
img->imageData[i]=64;
}
else if(unsigned(img->imageData[i]) <128)
{
img->imageData[i]=96;
}
else if(unsigned(img->imageData[i]) <char(160))
{
img->imageData[i]=char(128);//(signed)test;
}
else if(unsigned(img->imageData[i]) <char(192))
{
img->imageData[i]=char(160);
}else if(unsigned(img->imageData[i]) <char(224))
{
img->imageData[i]=char(192);
}else if(unsigned(img->imageData[i]) <char(255))
{
img->imageData[i]=char(224);
}
else
{
img->imageData[i]=char(255);
}//if文おわり
}//for文おわり
}
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace std;
void POSTERIZATION(IplImage *img);
int main( int argc, char **argv)
{
IplImage *imgA = cvLoadImage( "test3.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
exit(0);
}
POSTERIZATION(imgA);
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);
cvWaitKey(0); // 0秒待つ => ずっと入力待ち
cvReleaseImage( &imgA );
cvDestroyWindow("window");
return 0;
}
void POSTERIZATION(IplImage *img)
{
for(int i = 0; i<img->imageSize; i++)
{
if( unsigned(img->imageData[i]) <32)
{
img->imageData[i]=0;
}
else if( unsigned(img->imageData[i]) <64)
{
img->imageData[i]=32;
}else if(unsigned(img->imageData[i]) <96)
{
img->imageData[i]=64;
}
else if(unsigned(img->imageData[i]) <128)
{
img->imageData[i]=96;
}
else if(unsigned(img->imageData[i]) <char(160))
{
img->imageData[i]=char(128);//(signed)test;
}
else if(unsigned(img->imageData[i]) <char(192))
{
img->imageData[i]=char(160);
}else if(unsigned(img->imageData[i]) <char(224))
{
img->imageData[i]=char(192);
}else if(unsigned(img->imageData[i]) <char(255))
{
img->imageData[i]=char(224);
}
else
{
img->imageData[i]=char(255);
}//if文おわり
}//for文おわり
}