本文整理汇总了C++中ImageGray::pixel方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageGray::pixel方法的具体用法?C++ ImageGray::pixel怎么用?C++ ImageGray::pixel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageGray
的用法示例。
在下文中一共展示了ImageGray::pixel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: extract_cc_
int extract_cc_(Pixel p, std::vector<Pixel> &cc, ImageGray<BYTE> &img)
{
std::stack<Pixel> s;
BYTE *pColor;
if (img.pixelInside(p.x, p.y))
pColor = &img.pixel(p.x, p.y);
else
return 0;
while (*pColor == 0 || !s.empty())
{
if (*pColor == 0) {
cc.push_back(p);
*pColor = 255;
s.push(Pixel(p.x+1, p.y));
s.push(Pixel(p.x-1, p.y));
s.push(Pixel(p.x, p.y+1));
s.push(Pixel(p.x, p.y-1));
}
p = s.top();
s.pop();
if (img.pixelInside(p.x, p.y))
pColor = &img.pixel(p.x, p.y);
else
*pColor = 255;
}
return cc.size();
}
示例2: white_neighbors
int white_neighbors(const Pixel &p, const ImageGray<BYTE> &img)
{
int nn = 0;
Pixel p1(p.x-1, p.y);
if (p1.x >= 0 && p1.x < img.xsize() && p1.y >= 0 && p1.y < img.ysize()) {
if (img.pixel(p1.x, p1.y) == 255)
nn++;
} else {
nn++;
}
Pixel p2(p.x+1, p.y);
if (p2.x >= 0 && p2.x < img.xsize() && p2.y >= 0 && p2.y < img.ysize()) {
if (img.pixel(p2.x, p2.y) == 255)
nn++;
} else {
nn++;
}
Pixel p3(p.x, p.y-1);
if (p3.x >= 0 && p3.x < img.xsize() && p3.y >= 0 && p3.y < img.ysize()) {
if (img.pixel(p3.x, p3.y) == 255)
nn++;
} else {
nn++;
}
Pixel p4(p.x, p.y+1);
if (p4.x >= 0 && p4.x < img.xsize() && p4.y >= 0 && p4.y < img.ysize()) {
if (img.pixel(p4.x, p4.y) == 255)
nn++;
} else {
nn++;
}
if (nn > 0) nn = 1;
return nn;
}