在c++中将图像读入像素矩阵
Reading an image into an matrix of pixels in C++
我已经将图像读取为LPPICTURE
与OleLoadPictre
并显示在窗口中,但我真正需要做的是将图像转换为像素矩阵,我可以操纵并保存回图像文件。
使用OleLoadPicture
,我几乎可以读取所有主要的图像格式。如果我可以访问单个像素,我就可以循环并提取它们。
在其他相关问题中,人们建议使用像OpenCV这样庞大的库和其他高度发达的库,这些库可以在阳光下做任何事情,但我更喜欢保持我的解决方案尽可能轻。我已经为我的像素写了一个基本的结构,我很高兴自己做操作。
我一直在看ImageMagic库与Magic++。这看起来很好,但如果有一个解决方案只是使用Windows API提取像素并将图像保存回任意图像格式,那么我认为这将是最好的/最轻的。
OleLoadPicture
给出了IPicture
的实例。使用IPicture::get_Handle
获取IPicture
实例持有的HBITMAP
。最后,使用GetDIBits
获取像素数据。
这里有这样做的示例代码。将其从MFC转换为普通的WinAPI应该可以获得您的像素数据。
相关文章:
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 访问随机图像像素的快速方法,最多一次
- 计算另一个图像像素满足条件的像素值的平均值
- 如何返回定义良好的内存部分?例如来自图像数据的像素的颜色值
- 如何将像素图像导入cpp
- OpenCV-如何将vale添加到图像一部分的所有像素
- 访问和更改基于另一个图像的像素颜色-opencv c++
- 免费图像写入像素
- 可视化 如何获取图像中像素的颜色(以C++ (sfml) 为单位)
- 将像素打包在盒子中的 1 位/带宽/二进制图像中
- 如何使用 openCV 更改图像每个像素的颜色
- 使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题
- 如何从C 中的CV :: MAT图像中有效提取某些像素
- OPENCV C .在for循环中在不同的图像像素上绘制一个圆圈(应在每个循环运行时将图像打开)
- 图像分割 - 删除C 中不需要的像素
- 如何使用Imebra库将压缩像素(用我自己的编码器压缩)回到DICOM图像文件中
- 如何确定 BMP 图像是否包含来自标题的 BGR 或 BGRA 像素
- 如何使用opencv在不丢失像素的情况下对图像进行去扭曲
- 内存中一个像素图像数据的表示形式
- 如何显示已保存在文件中的像素图像