는 일반적으로 하나의 이미지 스케일 피라미드를 만드는 모든 스케일에서 OpenCV HOGDescriptor 같이 즉 걸쳐 다음에만 70x100 창문 검색 :
double scale = 1.;
double scale0 = 1.05;
int maxLevels = 64;
int nLevels;
Size templateSize(70,100);
cv::Mat testImage = cv::imread("test1.jpg");
vector<double> levelScale;
for(nLevels = 0; nLevels < maxLevels; nLevels++)
{
levelScale.push_back(scale);
if(cvRound(testImage.cols/scale) < templateSize.width ||
cvRound(testImage.rows/scale) < templateSize.height ||
scale0 <= 1)
break;
scale *= scale0;
}
nLevels = std::max(nLevels, 1);
levelScale.resize(nLevels);
int level;
for(level =0; level<nLevels; level++)
{
cv::Mat testAtScale;
Size sz(cvRound(testImage.cols/levelScale[level]),
cvRound(testImage.rows/levelScale[level]));
resize(testImage,testAtScale,sz);
//result = match(template,testAtScale);
//cv::imshow("sclale",testAtScale);
//cv::waitKey();
}
당신이 다음 포스트해야 결과를 원래의 비율로 다시 처리하십시오. 이것은 상자로 간단하지만 히트 맵/응답 맵/확률 맵이있는 경우 크기를 다시 조정하면 다소 해킹 될 수 있습니다.
출처
2014-05-23 22:17:28
QED
템플릿 일치는 크기 및 회전 불변량이라고 생각했습니다. – GPPK
실제로 축척 및 회전이 영향을줍니다. 5x5 행렬에 3x3 행렬을 상상해보십시오. 결과는 달라집니다 – Robert8255
당신이 원한다면 cv :: resize를 사용하여 ROI의 내용을 확장 할 수 있습니다. –