使用C ++进行图像处理

时间:2014-07-06 17:51:32

标签: c++ opencv image-processing jpeg

我有一个大学作业,我需要进行基本的图像处理,例如打开图像,重新采样,缩放和一些基于像素连接的操作。

是否有任何库可以让事情变得更容易,例如jpg查看和启用像素级访问? OpenCV是一个不错的选择,如果是这样,我应该使用哪些库?

(我不想直接调用库方法来执行它们,因为这个赋值需要手动完成一些)

提前谢谢。

1 个答案:

答案 0 :(得分:2)

我建议您使用ImageMagick将图像转换为PBM / PGM或PNM格式(如here所述),然后您可以使用C ++轻松读取图像并以相同,非常简单的格式将其写出只是

P1 (or P2-P6)
width height (in ASCII text)
pixel pixel pixel pixel ...
pixel pixel pixel pixel ...

通过这种方式,您可以专注于图像处理和像素连接,而不必担心游程编码,调色板或JPEG DCT等。

要将JPEG转换为PNM,只需使用ImageMagick' convert工具

convert image.jpg image.pnm

或TIF到PPM

convert image.tif image.ppm

如果您想要具有ASCII像素数据而非二进制的NetPBM格式P1-P3,请使用带有ImageMagick -compression none命令的convert选项,即

convert image.jpg -compresssion none image.pnm

如果您想要使用二进制像素数据的NetPBM格式P4-P6,请不要使用-compression none参数:

convert image.jpg image.pnm