我正在使用opencv来实现游戏系统的潜在字段。
我有一张地图大小的cv :: mat,我用数据来描述我的单位是多么脆弱。矩阵使用32位整数,值范围从0到大约1200.
然后我使用cv :: filter2D来找到构建炮塔的最佳位置。
int kernelSize = (turretRange * 2) + 1;
cv::Mat circleKernel = cv::Mat( kernelSize, kernelSize, __potentialDataType, cv::Scalar::all(0) );
cv::circle(circleKernel, cv::Point(turretRange + 1, turretRange + 1), turretRange, 1, -1, 8 );
cv::filter2D( vulnerabilityMap, buildMap, -1, circleKernel, cv::Point(-1,-1) );
然后我计算buildMap的最小值和最大值位置,其中max应该为我的炮塔提供最佳位置。
double min2, max2;
cv::Point min_loc2, max_loc2;
cv::minMaxLoc(buildMap, &min2, &max2, &min_loc2, &max_loc2 );
当y在turretRange短路时,我获得了x中的最佳位置。
也就是说,max_loc2是(最优x,最优y - turretRange)
任何关于我做错的提示都会非常感激。