如何在ImageMagick中使用Intel IPL库以及如何从IPL转换为ImageMagick?

时间:2015-11-19 06:31:03

标签: c++ image-processing imagemagick intel-ipp

我刚刚获得了一个intel ipl库(网上的ipl21.dll)。 现在我想用vc ++ 2010构建ipl库。 但是没有任何一些例子可以说如何使用ipl库构建和应用图像处理。(我找到了文档,但它对我没有帮助)

请问如何使用vc ++ 2010帮助我构建ipl库,还有一些例子,比如如何在图像处理中使用ipl库。

特别是,我正在研究ImageMagick。首先,我通过ImageMagick库读取了一个图像文件。它运作良好。 另外,我想使用ipl libray从readed图像数据进行图像处理。

特别是,我想知道如何使用来自ImageMagick的ipl库读取数据。然后在完成处理后,如何从ipl转换为ImageMagicK?

1 个答案:

答案 0 :(得分:1)

我不确定历史,我很高兴能得到纠正......但我相信OpenCV是基于,并且可以做IPL过去所做的一切,包括SSE [23] / MMX / CUDA等在我看来,你最好放弃ImageMagick和IPL并用OpenCV替换它们 - 或者在ImageMagick中探索OpenCL算法。希望其他人会评论并启发我们。

无论如何,如果您使用ImageMagick加载图像并且想要访问位图数据(像素),那么您可以将它们放入IPL数据结构中,最简单的可能是这样的:

#include <cstdlib>
#include <iostream>
#include <Magick++.h>

using namespace std;

int main ( int argc, char *argv[] )
{
   // Initialize ImageMagick
   Magick::InitializeMagick(*argv);

   int row,col;
   Magick::Image image;
   int bytes=512*512*3;           // I happen to know Lena is 512x512 and RGB - i.e. 3 bytes/pixel
   unsigned char buffer[bytes];

   // Read in Lena
   image.read("lena.png");

   // Convert Lena to a bunch of bytes
   image.write(0,0,512,512,"RGB",Magick::CharPixel,buffer);

   // Now "buffer" points to the raw pixels and you can put them into IPL structures