【发布时间】:2010-10-04 14:17:44
【问题描述】:
这是我的问题:
我正在寻找一种方法将图像导入 C++,然后遍历其像素,每次找到某种颜色的像素时递增一个计数器。
我进行了一些研究,但没有发现任何特别有用的东西。 DevIL 看起来是个不错的选择,但我不知道从哪里开始。
这是一些 C++/python 伪代码,希望能说明我正在尝试做的事情:
for image in folder:
A = 0;
B = 0;
for pixel in image:
if (pixel == colourA) {A++}
if (pixel == colourB) {B++}
//Output the count of colours for each image
outputToFile(A, B);
有人对从哪里开始有一些提示吗?
谢谢
编辑 一些额外信息:我使用的是 Windows 7,所有图像都是 .pngs
EDIT2 除了实际找出当前像素的颜色外,我一切正常。目前我正在使用这个:
int blue = ((uchar *)(img->imageData + pixelX*img->widthStep))[pixelY*img->nChannels + 0];
但它不起作用,我不知道它是如何工作的。我还没有找到任何我能理解的东西。谁能指出我如何找到某个像素的 RGB 值的正确方向?
编辑3 完毕!对于任何发现这试图做类似事情的人,我剩下的大部分问题和相当多的代码都可以在here 找到。感谢您的帮助!
【问题讨论】:
-
您正在尝试计算(部分)直方图。您的普通图形库应该能够为您做到这一点(至少是 imagemagick)。