我想读取一个8位灰度bmp文件,重建它的像素矩阵,然后用sobel算子处理它。然而,程序不能构建像素矩阵,它会分割原始的隐藏块。当我像这样运行程序时,
./sobel cube.bmp output.bmp processed.bmp output.txt的
cube.bmp是输入 output.bmp是构成像素矩阵的输出。 proccessed.bmp是用sobel算子处理的输出。
Code and Sample photos
阅读8bit灰度bmp文件的问题c
1
A
回答
1
一对夫妇的意见:
你processed.bmp有一个不正确的行大小或像素大小写的位图的外观。你可以知道,因为每一行都是水平移动的。
您正在处理灰度位图,但你正在读取和写入像素,虽然他们有RGB分量,即:
pixelArray[i][j].red = pixel.red;
pixelArray[i][j].green = pixel.green;
pixelArray[i][j].blue = pixel.blue;
灰度像素仅仅是一个8位值。
2
可能不是你正在寻找的答案,但看看openCV。
假设你对图像处理步骤没有特别的BMP操作感兴趣,这个库负责所有的文件I/O,显示等。它也有一个很好的sobel过滤器。
+0
在这里使用OpenCV好像使用土星火箭爬树。 – Seth 2010-11-02 18:10:41
+0
@seth - true,但如果OP对图像过滤器感兴趣,那么搞乱BMP标头对齐就好像设计自己的梯子来爬树一样;-) – 2010-11-02 21:29:10
相关问题
- 1. 阅读BMP文件C++(阅读BMP标题时遇到的问题)
- 2. 将Bmp灰度读入C
- 3. Java阅读bmp文件?
- 4. 阅读bmp文件的隐写术
- 5. C二元文件阅读问题
- 6. 阅读16位灰度TIFF
- 7. C读取bmp文件
- 8. 阅读bmp文件头大小
- 9. 问题阅读csv文件
- 10. 将彩色bmp转换为灰度bmp?
- 11. 阅读c中的BMP图像
- 12. 在C++中读取bmp文件的宽度和高度
- 13. 转动色BMP为灰度:
- 14. 添加BMP灰度头
- 15. 阅读文本文件的问题
- 16. 阅读文本文件的问题 - java.lang.StringIndexOutOfBoundsException
- 17. 在阅读c文件中的jpeg文件时出现问题
- 18. 读取.bmp文件C++,错误的值?
- 19. 阅读BMP头文件,打包。读取不正确的值
- 20. 问题与阅读文本文件
- 21. 阅读文件时遇到的问题
- 22. 阅读csv文件的问题
- 23. 文件阅读问题的servlet
- 24. 阅读二进制文件的问题
- 25. 文件阅读问题的Python
- 26. 阅读.txt文件的问题
- 27. 阅读Xml文件的问题
- 28. 阅读索引文件(COBOL)的问题
- 29. PHP阅读CSV文件的问题
- 30. 阅读索引文件的问题
我怀疑答案在于'Print'的输出,这是您唯一没有向我们显示的东西。 – 2010-11-02 17:26:13