计算填充颜色的百分比,特别是ROI?

时间:2016-07-20 18:27:53

标签: opencv colors percentage

这是一个例子。我有一个健康吧。如果玩家拥有100%的HP,那么他的健康状况就会一直保持红色。如果他受到攻击,健康栏的一部分是红色,其余部分是黑暗的(因为他失去了一些HP)。我在他的健康酒吧所在的地方取得了投资回报率。我如何使用OpenCV计算他的生活百分比?

1 个答案:

答案 0 :(得分:0)

这是我得到的最终解决方案。感谢Miki

Mat testBar = src(Rec_UserBarHP);
Mat testBarHSV;

cvtColor(testBar, testBarHSV, COLOR_BGR2HSV);

Mat mask1;
inRange(testBarHSV, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1);
Mat mask = mask1;

int TotalPixels = testBarHSV.rows * testBarHSV.cols;
float ZeroPixels = TotalPixels - countNonZero(testBarHSV);

ostringstream str;
str << "Number of red pixels:" << ZeroPixels;
putText(src, str.str(),
    Point(5, 5), 
    FONT_HERSHEY_COMPLEX_SMALL, 
    1.0, 
    Scalar(255, 255, 255), 
    1, 
    CV_AA);