您的位置:首页 > 运维架构

基于OpenCV的视频图像组态 (7) :轮子动画效果

2017-12-08 17:01 405 查看
轮子效果

bool __fastcall TCbwAnimationEffect_Wheel::BuildMaskMat(cv::Mat& destMat,

cv::Mat& srcMat, TRect displayRect) {

TRect wholeRect(0, 0, displayRect.right - displayRect.left,

displayRect.bottom - displayRect.top);

double cx = wholeRect.right / 2.0, cy = wholeRect.bottom / 2.0;

TCbwFloatPoint centerPoint(cx, cy);

double unitDegree = 360 / FPattern;

double deltaDegree = double(FCurrentIndex + 1) / FTotalFramesInOnePeriod * unitDegree;

BYTE * pDst = destMat.data;

for (int row = 0; row < destMat.rows; ++row)

for (int col = 0; col < destMat.cols; ++col) {

TCbwFloatPoint p(col, row);

double theta = p.ThetaToPoint(centerPoint);

if (FClockwiseFlag)

theta = 360 - theta;

bool inFlag = false;

for (int i = 0; i < FPattern; ++i) {

if (theta >= unitDegree * i && (theta - unitDegree * i) <=

deltaDegree)

inFlag = true;

}

*pDst++ = inFlag ? 255 : 0;

}

return true;

}

演示效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: