5
如何獲得ZBar中給定矩形的邊界框?使用ZBar獲取條碼的邊界框
目前我使用此代碼計算它從location polygon:
for(Image::SymbolIterator symbol = image.symbol_begin(); symbol != image.symbol_end(); ++symbol) {
int pointsCount = symbol->get_location_size();
for (int ii = 0; ii < pointsCount; ++ii) {
int x = symbol->get_location_x(ii);
int y = symbol->get_location_y(ii);
if (!ii) {
r.left = r.right = x;
r.top = r.bottom = y;
}
r.left = std::min(r.left, x);
r.right = std::max(r.right, x);
r.top = std::min(r.top, y);
r.bottom = std::max(r.bottom, y);
}
printf("rect(%d,%d,%d,%d), ", r.left, r.top, r.right, r.bottom);
}
這非常適用於一些條形碼,但我有一個特定的圖像,其中zbar和正確識別條形碼文字 - 它的「CHECK」 - 但返回10分作爲位置多邊形,它們都位於條形碼的右上角。
下面是它看起來多麼可視化(我畫的點作爲圓):
我也是錯在這裏做什麼?計算條形碼邊界框的正確方法是什麼?
您帖子中的文檔鏈接說:「這當前不是多邊形,而是符號被解碼的掃描位置」。看看[他們的示例圖像之一](https://sourceforge.net/p/zbar/screenshot/234713.jpg),它看起來與你的情況類似 - 看起來它不是一個邊界,而是一個集合與提取算法相關的點。看起來你運氣不好... – mindriot
@mindriot由於賞金將會過期,你可以將它作爲答案嗎?這樣我可以獎賞你的賞金,你的回答是有效的,即使我運氣不好。 – sashoalm
因爲我沒有真正設法提供_solution_,所以不要擔心獎金。 – mindriot