我试图学习如何将jpeg图像作为c ++或c中的像素数组读取。到目前为止,我已经知道我必须包括一个外部库,如libjpg.h。
我已经被告知jpeg是以RGB结构格式化的,每个像素都有3个值。这是真的?如果是这样,我怎么读取纯黑白图像的值?
这个问题的目的是我试图在黑色图片中指定一个指向白色方形右上角的指针。 如果有人能告诉我如何读出为这种情况给我的vaules所以我可以分配这个指针我会很高兴。
答案 0 :(得分:0)
假设您使用libjpeg运行。您将分配一个缓冲区,然后调用jpeg_read_scanlines
足够的次数,以将所有解压缩的图像数据存入内存。您可以单独读取扫描线(行)并根据需要重新格式化它们。如果图像是灰度图像,则RGB值将全部相等,因此您只需读取其中一个。
Paul Bourke's site有一些非常好用的libjpeg例子。