0
我正在使用HOG功能来检测两个图像的相似性,并找出图像的哪个部分发生了变化。测试场景是我首先以表格的图片作为参考,然后在表格的角落添加一个对象,然后在相同的位置再次拍摄图片。如何检测opencv中两个图像之间的变化?
然后我使用resize和hog来计算两张图片上的HOG特征数组。 Imgproc.resize(mGray,mGray,new Size(128,256)); hog.compute(mGray,des); 然后
double distance=0;
for(int i=0;i<ref.length;i++)
{
distance += Math.abs(ref[i] - a[i]);
}
if(distance < Threshold){
Log.i(TAG,"has difference "+distance);
}else{
Log.i(TAG,"has no difference "+distance);
}
现在我可以检测上有两张图片的变化,但我怎么能快速确定在何处变化?最初,我正在考虑将图片拆分为许多小块,并计算这些小块的HOG特征值,逐块比较距离,但这并不是很有效。
如果有更好的方法来做到这一点?