我尝试使用HOGDescriptor计算渐变映射。 我的代码:
HOGDescriptor hog;
hog.compute(faceROI,ders,Size(32,32),Size(0,0),locs);
Mat grad;
Mat sec;
hog.computeGradient(frame_gray, grad, angleofs);
imshow("1", frame_gray);
imshow("2", grad); //here program fails: Unhandled exception at memory location
imshow("3", angleofs); //grad.data = "". Why??
我找不到使用HOGDescriptor :: computeGradient的小例子。
请帮忙!
答案 0 :(得分:7)
要想象OpenCv的HOGDescriptor :: Calculate(..),请使用this,这太棒了。
答案 1 :(得分:0)
imshow(“2”,毕业);失败是因为imshow期望grad图像是1,3或4通道图像,而它是2通道图像。
第一个通道包含x方向的渐变,而第二个通道包含y的渐变。您应该将通道分成两个图像以显示它们:
Mat grad_channel[2];
split(grad, grad_channel);
imshow("grad_x", grad_channel[0]);
imshow("grad_y", grad_channel[1]);
最佳