如何解决 OpenCV libjpeg 和 fltkjpeg 之间的库冲突?

Posted

技术标签:

【中文标题】如何解决 OpenCV libjpeg 和 fltkjpeg 之间的库冲突?【英文标题】:How to solve library conflict between OpenCV libjpeg and fltkjpeg? 【发布时间】:2012-12-30 01:21:08 【问题描述】:

问题是,我必须链接一个名为 fltkjpeg.lib 的库才能读取 *.jpg 格式。 但我的应用程序还需要与 OpenCV libjpeg.lib 库链接。 当我链接 fltkjpeg 库时,OpenCV jpeg 库不起作用。 当我链接 OpenCV jpeg 时,FLTK jpeg 不会读取 jpeg 图像。

我怎样才能消除这个冲突?

顺便问一下,如何将 OpenCV 图像数据设置为 FLTK 图像数据?目前我像这样使用 Fl_Shared_Image::get(filepath);

谢谢。

【问题讨论】:

【参考方案1】:

我已经这样解决了,效果很好。

Oimg1 = cvLoadImage(Image1, 0);
if(Oimg1 == NULL) return 0;

unsigned char* imgdata1 = new unsigned char[Oimg1->width*Oimg1->height*Oimg1->nChannels];
GetImageDataFromOpenCV(Oimg1, imgdata1);
Fl_RGB_Image *rgb_img0 = new Fl_RGB_Image((const uchar *) imgdata1, Oimg1->width, Oimg1->height, Oimg1->nChannels);
FLTKimg[0] = (Fl_Shared_Image *)rgb_img0;

【讨论】:

以上是关于如何解决 OpenCV libjpeg 和 fltkjpeg 之间的库冲突?的主要内容,如果未能解决你的问题,请参考以下文章

dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS

Android压缩图片和libjpeg库

解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的问题

libJPEG-turbo库使用示例代码

使用libjpeg-turboYUV转JPG

如何从 portlet 检索数据到 portal_normal.flt - Liferay