【发布时间】:2010-12-08 07:28:43
【问题描述】:
如何在 C 中读取图像以便直接控制其像素(就像我们在 MATLAB 中所做的那样)?
我尝试了旧方法:
FILE *fp;
fp = fopen("C:\\a.tif","r");
这只是给了我ascii 形式的图像文件(我认为)。
如何对图像进行像素级控制并执行一些基本操作,例如反转图像?
【问题讨论】:
-
C 的级别比您想象的要低一些。该 fopen 为您提供原始二进制文件,您可以自行决定如何将该二进制文件解释为图像,或者使用下面建议的库。
-
@Breton,他专门询问如何解码这些文件,而不是二进制内容。我觉得当你希望你的程序更快时,C 是一个更好的选择,否则 Python 提供的 PIL 就足够了。
-
@Breton -
fopen()没有提供这样的原始二进制文件,而是提供了文本模式,这意味着它可能会在 Windows 上错误地读取某些文件。 -
但在 Linux 和 UNIX 上没问题。
-
@Xolve 他没有,他问如何操纵像素,就像他在 matlab 中所做的那样。我从未使用过 matlab,但我怀疑它的高级程度足以不强迫用户将原始二进制数据解码为图像。我只是指出 C 不是那么高级,它不理解没有库的图像,或者没有编写将二进制压缩信息解码为像素数据的程序。 @Lutz,哦,对了,我猜它需要一个“b”标志或什么?我不知道 C 对文本和二进制有任何区别。
标签: c image-processing image-manipulation pixel