本文整理汇总了C++中Pixel::isBlack方法的典型用法代码示例。如果您正苦于以下问题:C++ Pixel::isBlack方法的具体用法?C++ Pixel::isBlack怎么用?C++ Pixel::isBlack使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pixel
的用法示例。
在下文中一共展示了Pixel::isBlack方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: detectCineBars
int cAmbiThread::detectCineBars()
{
/*
Annahme: Wenn im mittleren oberen und unterem Drittel des Bildes alle aufeinander folgenden Pixel schwarz sind
haben wir einen Horizontalen Balken.
|0|x x|0|
|y|0 0|y|
|y|0 0|y|
|0|x x|0|
*/
if (cfg.detectCineBars == cbNone || barsChanged) {
return done;
}
Pixel* p;
const int xOffset = imageWidth / 4;
const int yOffset = imageHeight / 4;
int tempxBarHeight = 0;
int tempyBarWidth = 0;
if (cfg.detectCineBars == cbHorizontal || cfg.detectCineBars == cbBoth) {
// check for xBar
for (int y = 0; y < yOffset; ++y) {
int row = imageWidth * y;
int xBarCount = 0;
for (int x = xOffset; x < imageWidth - xOffset; ++x) {
p = &image[row + x];
if(p->isBlack(cfg.cineBarsThreshold)) {
++xBarCount;
}
}
if(xBarCount == imageWidth - (2*xOffset)){
++tempxBarHeight;
}
else {
break;
}
}
}
if (cfg.detectCineBars == cbVertical || cfg.detectCineBars == cbBoth) {
// check for yBar
for (int x = 0; x < xOffset; ++x) {
int yBarCount = 0;
for (int y = yOffset; y < imageHeight - yOffset; ++y) {
int row = imageWidth * y;
p = &image[row + x];
if(p->isBlack(cfg.cineBarsThreshold)) {
++yBarCount;
}
}
if(yBarCount == imageHeight - (2*yOffset) ){
++tempyBarWidth;
}
else {
break;
}
}
}
if (tempxBarHeight != lastxBarHeight || tempyBarWidth != lastyBarWidth) {
barsChanged = true;
xBarHeight = tempxBarHeight;
yBarWidth = tempyBarWidth;
}
lastxBarHeight = tempxBarHeight;
lastyBarWidth = tempyBarWidth;
if(barsChanged) tell(1, "V2 Black border detection horBar: %d verBar: %d", xBarHeight, yBarWidth);
return done;
}