Iplimage To Bitmap (銀展提供)



if (ipl->depth == 8)

{

if (ipl->nChannels == 3)

{

return gcnew System::Drawing::Bitmap(ipl->width , ipl->height , ipl->widthStep , System::Drawing::Imaging::PixelFormat::Format24bppRgb ,

(System::IntPtr)ipl->imageData); 

}

else

{

return gcnew System::Drawing::Bitmap(ipl->width , ipl->height , ipl->widthStep , System::Drawing::Imaging::PixelFormat::Format8bppIndexed ,

(System::IntPtr)ipl->imageData);

}

}



Bitmap To Iplimage 



IplImage* tmp;

System::Drawing::Imaging::BitmapData^ bmData = bitmap->LockBits(System::Drawing::Rectangle(0, 0, bitmap->Width, bitmap->Height) ,

System::Drawing::Imaging::ImageLockMode::ReadWrite, bitmap->PixelFormat);

if(bitmap->PixelFormat == System::Drawing::Imaging::PixelFormat::Format8bppIndexed)

{

tmp = cvCreateImage(cvSize(bitmap->Width , bitmap->Height) , IPL_DEPTH_8U , 1);

tmp->imageData = (char*)bmData->Scan0.ToPointer();

}

else if (bitmap->PixelFormat == System::Drawing::Imaging::PixelFormat::Format24bppRgb)

{

tmp = cvCreateImage(cvSize(bitmap->Width , bitmap->Height) , IPL_DEPTH_8U , 3);

tmp->imageData = (char*)bmData->Scan0.ToPointer();

}

posted on 2012-02-13 14:57  知识天地  阅读(301)  评论(0编辑  收藏  举报