作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在FreeImage(FIBITMAP)和OpenCV格式(IplImage和/或Mat)之间交换数据。我很好地将数据从FIBITMAP获取到IplImage或Mat中,因为FreeImage为您提供了功能FreeImage_GetScanLine,您可以将OPenCV imageData ptr设置为等于。
但是,我坚持如何做相反的事情,即一旦有了OpenCV镜像,如何将其数据转换为FreeImage镜像?
最佳答案
您只需要稍微小心一点就复制数据指针,很多图像格式都有填充以在例如4字节边界上的每一行开始。
如果您的图像具有GetScanLine()函数,那么制作一个空的plImage * / cv::Mat并使用从GetScanLine()返回的指针和cv::MAt的.ptr()成员进行内存复制,可能更安全。
cv::Mat &src
int srcRowBytes = width * src.elemSize();
for (int ih=0;ih<height;ih++) {
memcpy(dest.pointer_to_row(ih),src.ptr(ih),srcRowBytes);
}
关于opencv - 将OpenCV IplImage或Mat复制到Freeimage FIBITMAP中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927049/
我一直在寻找答案,但我能找到的只是与我需要的相反的答案(Mat 到 FIBITMAP)。我有一个简短的代码,可以将图像加载为 FIBITMAP 对象。我需要 FreeImage,因为 OpenCV 不
我是一名优秀的程序员,十分优秀!