为什么ImageMagick的输出图像是垂直翻转的?

时间:2015-12-08 11:08:29

标签: opencv imagemagick intel-ipp

您好我正在使用英特尔IPL库和ImageMagicK库。 当我第一次从ImageMagicK获取图像日期时,我将数据放入IPL。 然后IPL可以获取图像数据。

当我显示我从IPL获得图像数据时。我发现结果图像数据总是翻转垂直化。你可以看到如下问题。

这是original image 然后我显示了resulting image

但是当我更改选项IPL_ORIGIN_TL,IPL_ORIGIN_BL时,结果完全相同。

像这样的代码。

    m_image.read(fileposition);

   IplImage* IPL_image = iplCreateImageHeader( 
      3,                            // number of channels
      0,                            // alpha channel
      IPL_DEPTH_8U,                 // data of byte type 
      "RGB", "BGR",                 // color model and channel seq
      IPL_DATA_ORDER_PIXEL,         // channel arrangement
      IPL_ORIGIN_TL,                // bottom left orientation
      IPL_ALIGN_DWORD,              // 4 bytes align
      m_image.columns(),
      m_image.rows(),                   // image width and height
      NULL,                         // ROI
      NULL, NULL, NULL              // no mask ROI, image ID, not tiled
   );

   iplAllocateImage(IPL_image,0,0);


    Magick2Ipl(m_image,IPL_image);

     ipView( IPL_image, "RGB", is_modal );



void Cmfc_test5Dlg::Magick2Ipl(Image magicImage, IplImage* cvImage)
{
   int width= magicImage.size().width();
   int height = magicImage.size().height();
   int buff_size = width*height*3;
   unsigned char* buffer = new unsigned char[buff_size];

   magicImage.write(0,0, width, height, "BGR", Magick::CharPixel, buffer);

   memcpy(cvImage->imageData, buffer, cvImage->imageSize);
  delete[] buffer;
}

我错过了什么?有谁知道我该怎么办才能解决? 为什么结果图像总是垂直翻转?

0 个答案:

没有答案