压缩原始图像缓冲区
我从灰度相机捕获原始图像。当我将图像传输到OpenCV的IplImage并使用cvSaveImage("image.jpg",image)
时,图像保存的大小约为160K。而如果我使用C中的fwrite
函数将图像缓冲区保存为.pgm
格式,则保存的图像大小为1.4M。
我的问题是:
cvSaveImage()
在保存时是否将图像压缩为指定格式?实际上,我正在开发一款 ARM 平台的智能相机,我想避免为 ARM 交叉编译 OpenCV 的开销。如何在不使用 cvSaveImage
而是使用 C 函数的情况下将此图像压缩为 .jpg
?
I capture a raw image from a grayscale camera. When I transfer the image to OpenCV's IplImage and use cvSaveImage("image.jpg",image)
, the image is saved with a size of around 160K. Whereas, if I use fwrite
function in C to save the image buffer in .pgm
format, the saved image size is 1.4M.
My question is:
Does cvSaveImage()
compress the image into the specified format while saving? Actually, I am working on a smart camera with ARM platform and I want to avoid the overhead of cross-compiling OpenCV for ARM. How can I compress this image to .jpg
without using cvSaveImage
, but rather using C functions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信 嵌入式 JPEG 可能就是您正在寻找的。
I believe Embedded JPEG may be what you are looking for.
或者尝试 Independent JPEG Group 源代码。
http://www.ijg.org/
Or try the Independent JPEG Group source code.
http://www.ijg.org/