2012-04-03 20 views
1

ImageMagickのRGB値の配列があり、opencvでIplImage構造体を作成したいと考えています。私は、ImageMagickイメージをhddに書き込んだり再読み込みしなくても、IplImageの内容をrgb配列の値に設定する方法を知りました。OpenCv Image from RGB Array

答えて

1

ImageMagick ImageオブジェクトをIplImageに変換します。バッファに書き込んだ後、そのバッファからIplImageを作成するだけです。コードはこちらから(http://www.imagemagick.org/discourse-server/viewtopic.php?f=23 &トン= 18183):

void Magick2Ipl(Image magicImage, IplImage* cvImage) 
{ 
    int width= magicImage.size().width(); 
    int height = magicImage.size().height(); 

    byte* blob= new byte[cvImage->imageSize]; 
    magicImage.write(0,0, width, height, "BGRA", MagickCore::CharPixel, blob); 
    memcpy(cvImage->imageData, blob, cvImage->imageSize); 
    delete [] blob; 
}  

敬具、 ダニエル

0
  • あなたは、また、この方法でそれを行うことができます

    Image image("Image_Path"); 
    
    int width = image.size().width(); 
    int height = image.size().height(); 
    
    IplImage* mat = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3); 
    image.write(0, 0, width, height, "BGR", Magick::CharPixel, (char*)mat->imageData); 
    
    cvShowImage("image", mat);