最終更新:
mikk_ni3_92 2008年05月25日(日) 17:56:12履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV+MP::2値化
#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <omp.h>
using namespace std;
/************[プロトタイプ宣言]****************/
void OMP_PARALLEL_BINARY(IplImage *imgA);
/***********[メイン関数]*****************/
int main( int argc, char **argv)
{
IplImage *image = cvLoadImage( "test.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(image ==NULL)
{
printf("File not found\n");
exit(0);
}
OMP_PARALLEL_BINARY(image);
cvNamedWindow("parallel",CV_WINDOW_AUTOSIZE);
cvShowImage("parallel",image);
cvReleaseImage( & image);
cvWaitKey(0); // 0秒待つ => ずっと入力待ち
cvDestroyAllWindows();
return 0;
}
/************[ここから、各種関数]**************/
void OMP_PARALLEL_BINARY(IplImage *imgA)
{
int i;
int j;
#pragma omp parallel for schedule(static) private(i)
for( j = 0 ; j < imgA->height;++j)
{
for(i = 0; i<imgA->widthStep ; ++i)
{
if(unsigned (imgA->imageData[j*imgA->widthStep+i]) > unsigned char(127))
{
imgA->imageData[j*imgA->widthStep+i] = char(255);
}
else
{
imgA->imageData[j*imgA->widthStep+i] = char(0);
}
}
}
}
#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <omp.h>
using namespace std;
/************[プロトタイプ宣言]****************/
void OMP_PARALLEL_BINARY(IplImage *imgA);
/***********[メイン関数]*****************/
int main( int argc, char **argv)
{
IplImage *image = cvLoadImage( "test.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(image ==NULL)
{
printf("File not found\n");
exit(0);
}
OMP_PARALLEL_BINARY(image);
cvNamedWindow("parallel",CV_WINDOW_AUTOSIZE);
cvShowImage("parallel",image);
cvReleaseImage( & image);
cvWaitKey(0); // 0秒待つ => ずっと入力待ち
cvDestroyAllWindows();
return 0;
}
/************[ここから、各種関数]**************/
void OMP_PARALLEL_BINARY(IplImage *imgA)
{
int i;
int j;
#pragma omp parallel for schedule(static) private(i)
for( j = 0 ; j < imgA->height;++j)
{
for(i = 0; i<imgA->widthStep ; ++i)
{
if(unsigned (imgA->imageData[j*imgA->widthStep+i]) > unsigned char(127))
{
imgA->imageData[j*imgA->widthStep+i] = char(255);
}
else
{
imgA->imageData[j*imgA->widthStep+i] = char(0);
}
}
}
}