0 结果

1 代码
将freeImage转为cv::mat,代码如下:
#include <FreeImage.h>
#include <opencv2\opencv.hpp>
using namespace cv;
// #define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
void FI2MAT(FIBITMAP* src, Mat& dst)
{
//FIT_BITMAP //standard image : 1 - , 4 - , 8 - , 16 - , 24 - , 32 - bit
//FIT_UINT16 //array of unsigned short : unsigned 16 - bit
//FIT_INT16 //array of short : signed 16 - bit
//FIT_UINT32 //array of unsigned long : unsigned 32 - bit
//FIT_INT32 //array of long : signed 32 - bit
//FIT_FLOAT //array of float : 32 - bit IEEE floating point
//FIT_DOUBLE //array of double : 64 - bit IEEE floating point
//FIT_COMPLEX //array of FICOMPLEX : 2 x 64 - bit IEEE floating point
//FIT_RGB16 //48 - bit RGB image : 3 x 16 - bit
//FIT_RGBA16 //64 - bit RGBA image : 4 x 16 - bit
//FIT_RGBF //96 - bit RGB float image : 3 x 32 - bit IEEE floating point
//FIT_RGBAF //128 - bit RGBA float image : 4 x 32 - bit IEEE floating point
int bpp = FreeImage_GetBPP(src);
FREE_IMAGE_TYPE fit = FreeImage_GetImageType(src);
int cv_type = -1;
int cv_cvt = -1;
switch (fit)
{
case FIT_UINT16: cv_type = DataType<ushort>::type; break;
case FIT_INT16: cv_type = DataType<short>::type; break;
case FIT_UINT32: cv_type = DataType<unsigned>::type; break;
case FIT_INT32: cv_type = DataType<int>::type; break;
case FIT_FLOAT: cv_type = DataType<float>::type

本文介绍了一种将FreeImage库中的图像数据转换为OpenCV的cv::Mat格式的方法,并提供了一个具体的C++实现示例。该转换适用于多种位深和颜色类型的图像,确保了图像数据能够在不同图像处理库间无缝传递。
最低0.47元/天 解锁文章
582

被折叠的 条评论
为什么被折叠?



