私は VC++ および OpenCV アプリケーションで作業しています。画像を picturBox にロードし、それらに対していくつかの OpenCV 操作を行っています。ロードした画像を IplImage に割り当てて処理を行いますが、処理された画像を画像ボックスに再度割り当てます。このコードを記述して、openFileDialog から選択した画像を IplImage にロードし、画像を 2 値化してから、2 値化された画像を pictureBox コードに再割り当てします。
const char* fileName = (const char*)(void*)
Marshal::StringToHGlobalAnsi(openFileDialog1->FileName);
IplImage *img=cvLoadImage(fileName,CV_LOAD_IMAGE_COLOR);
int width=img->width;
int height=img->height;
IplImage *grayScaledImage=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
cvCvtColor(img,grayScaledImage,CV_RGB2GRAY);
cvThreshold(grayScaledImage,grayScaledImage,128,256,CV_THRESH_BINARY);
this->pictureBox1->Image=(gcnew
System::Drawing::Bitmap(grayScaledImage->width,grayScaledImage->height,grayScaledImage->widthStep,
System::Drawing::Imaging::PixelFormat::Format24bppRgb,(System::IntPtr)grayScaledImage->imageData));
しかし、バイナリ イメージを表示する形式が見つかりません。それに関するヘルプはありません。
元の画像:
変換後の画像: