VC++ 및 OpenCV 응용 프로그램에서 작업하고 있습니다. picturBox에 이미지를로드하고 거기에서 OpenCV 작업을 수행하고 있습니다.로드 된 이미지를 IplImage에 할당하여 처리합니다 그런데 픽처 박스로 다시 가공 화상을 할당 난 IplImage로 OpenFileDialog를으로부터 선택된 이미지를로드하는 코드를 작성하는 화상 다음의 PictureBox 코드 다시 치화 화상을 재 이진화 :PictureBox에서 이진 이미지를 표시하는 방법 VC++
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));
하지만 바이너리 이미지를 표시하는 형식은 찾지 못했다.
원본 이미지 :
변환 된 이미지 :
System :: Drawing :: Imaging이 pictureBox에 변환 및 이미지를 표시하지 않는 이유는 무엇입니까? –
@Eslam .net 상자에 그레이 스케일 이미지가 필요하면 24bppRgb가 아닌 그레이 스케일 픽셀 유형을 사용하도록 지정합니다. –
Format16bppGrayScale을 사용하려고했지만 예외가 throw됩니다. –