Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中处理图像+;或C_C++_C_Image Processing - Fatal编程技术网

C++ 在C+中处理图像+;或C

C++ 在C+中处理图像+;或C,c++,c,image-processing,C++,C,Image Processing,首先,我是一个初学者。好吧 我已经阅读了相关的答案和问题,但请帮助我解决这个问题: 哪些库最简单、最快?运行时间非常重要 > P/> < P>有很多很好的库用于处理C和C++中的图像,它们都没有明显优于其他所有的库。OpenCV对其中一些任务有很好的支持,而ImageMagick则擅长于其他任务。JPEG组也有自己的JPEG处理功能实现。这些可能是良好的资源开始;API文档可以更具体地指导您如何使用这些工具 至于C或C++库是否注定要更快,两者之间没有明确的赢家。毕竟,你可以在C++中编译C

首先,我是一个初学者。好吧

我已经阅读了相关的答案和问题,但请帮助我解决这个问题:

<如何在C++中打开JPEG图像文件,将其转换成灰度图像,获取直方图,将其调整为较小的图像,裁剪特定区域,或显示特定区域? 对于这些任务,C或C++一般都更快吗?< /P> 哪些库最简单、最快?运行时间非常重要


> P/> < P>有很多很好的库用于处理C和C++中的图像,它们都没有明显优于其他所有的库。OpenCV对其中一些任务有很好的支持,而ImageMagick则擅长于其他任务。JPEG组也有自己的JPEG处理功能实现。这些可能是良好的资源开始;API文档可以更具体地指导您如何使用这些工具

<>至于C或C++库是否注定要更快,两者之间没有明确的赢家。毕竟,你可以在C++中编译C库。也就是说,C++库由于语言复杂而有点难学,但一旦你对语言有了良好的感觉,就更容易使用。(我有点偏向C++,所以一定要考虑源代码)。我建议你使用任何你觉得更容易完成任务的语言;在这里两者都不是一个坏的选择,尤其是在性能很重要的情况下

祝你的项目好运

下面是一个使用库的示例

读取图像、裁剪图像并将其写入新文件的程序(异常处理是可选的,但强烈建议):

#包括
#包括
使用名称空间std;
使用名称空间Magick;
int main(int argc,字符**argv)
{
//构造图像对象。将图像构造与图像对象分离
//读取操作可确保无法读取图像文件
//不会使图像对象无效。
图像;
试一试{
//将文件读入图像对象
image.read(“girl.jpeg”);
//将图像裁剪到指定的大小(宽度、高度、xOffset、yOffset)
裁剪(几何体(100100100100));
//将图像写入文件
image.write(“x.jpeg”);
}
捕获(异常和错误)
{

对于基本的图像处理,您也可以尝试Qt的QImage类(和其他)。这为您提供了打开、缩放、调整大小、裁剪、像素处理和其他任务的基本功能

否则,您可以使用ImageMagick或OpenCV。OpenCV为许多图像处理/图像识别任务提供了许多示例

希望有帮助。

是最简单、重量最轻的解决方案

gdImageCreateFromJpeg
gdImageCopyMergeGray
gdImageCopyResized

哦,都是C.

< P>如果运行时间是很重要的事情,那么你必须考虑将处理任务卸载到GPU芯片上的图像处理库,如:


OpenCV将处理卸载到GPU。
gdImageCreateFromJpeg
gdImageCopyMergeGray
gdImageCopyResized