有哪些跨平台且高性能的图像库可用于图像处理(调整大小和查找颜色/色调直方图),不需要 GUI。这是为 C/C++ 编写的。
到目前为止,我已经研究了以下库:
- OpenCV
- Boost 的 GIL
- DevIL
- CImg
我的问题:
- 我列出的这些库的性能如何?
- 还有哪些其他库可供选择?
非常感谢您的意见。
有哪些跨平台且高性能的图像库可用于图像处理(调整大小和查找颜色/色调直方图),不需要 GUI。这是为 C/C++ 编写的。
到目前为止,我已经研究了以下库:
我的问题:
非常感谢您的意见。
我协助维护libvips,这是一个免费的、跨平台的 C/C++ 科学图像处理库。它速度快,在处理非常大的图像时表现良好。
我进行了一个非常简单的基准测试:加载一个 10,000 x 10,000 像素的 RGB tif 图像,从每个边缘裁剪 100 像素,缩小 10%,锐化并再次保存。至少在这个微不足道的测试中,vips 的速度比我尝试过的其他任何东西都快两倍以上。
C++ API 文档在此。例如:
#include <vips/vips8>
using namespace vips;
int
main( int argc, char **argv )
{
// startup, load plugins, init support libraries, etc.
if (VIPS_INIT(argv[0]))
vips_error_exit(NULL);
// the "sequential" access hint means we plan to only read this image
// top-to-bottom (eg. no 90 degree rotates) ... this means libvips can
// stream the image and run decode and processing in
// parallel on separate threads
VImage image = VImage::new_from_file(argv[1],
VImage::option()->set("access", "sequential"));
// shrink to 20% and find the histogram
VImage hist = image.resize(0.2).hist_find();
hist.write_to_file(argv[2]);
return 0;
}
$ g++ -g -Wall resize.cpp `pkg-config vips-cpp --cflags --libs`
$ ./a.out ~/pics/wtc.jpg x.csv
它将读取JPG输入并将直方图写入CSV文件。
warpPerspective
的更快替代方案是什么?vips_quadratic
?为了了解 warpPerspective
,请看这里:http://imgur.com/a/yiF55,查看 logo_warped 图像。这就是它利用变换矩阵从一个角落到另一个角落(单应性矩阵)所做的事情。谢谢。 - bad_keypointsvips_quadratic()
可以进行透视变换。我会为您制作一个示例程序。 - jcupittvips_quadratic()
还没有完成和可用,至少对于你的使用是这样,因此缺乏文档。抱歉。我会在待办事项中添加一条注释,说明它需要解决。 - jcupitt别忘了看看CxImage - 我在全球部署的图形密集型手机应用程序中专业使用过它,它表现完美,功能丰富。一定要看看!
有一个简单且免费的开源跨平台图像处理库Simd。根据其描述:
它提供了许多用于图像处理的有用高性能算法,例如:像素格式转换,图像缩放和过滤,从图像中提取统计信息,运动检测。
这些算法使用不同的SIMD CPU扩展进行优化:x86/x64的SSE、SSE2、SSSE3、SSE4.1、SSE4.2、AVX、AVX2和AVX-512,PowerPC的VMX(Altivec)和VSX(Power7),ARM的NEON。