使用OpenCV的HOGDescriptor :: computeGradient

时间:2013-02-12 21:50:48

标签: opencv

我尝试使用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的小例子。

请帮忙!

2 个答案:

答案 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]);

最佳