【发布时间】:2016-02-21 21:33:50
【问题描述】:
我正在尝试获取与 SVM 关联的超平面。为简单起见,我们假设example in OpenCV's page。
在这里,他们通过以下方式使用样本输出集合构建“图像”:
// Show the decision regions given by the SVM
Vec3b green(0,255,0), blue (255,0,0);
for (int i = 0; i < image.rows; ++i)
{
for (int j = 0; j < image.cols; ++j)
{
Mat sampleMat = (Mat_<float>(1,2) << j,i);
float response = svm->predict(sampleMat);
if (response == 1)
image.at<Vec3b>(i,j) = green;
else if (response == -1)
image.at<Vec3b>(i,j) = blue;
}
}
绿色和蓝色类之间的线显示为分离超平面。
现在,我的问题是:如何将这条线作为点向量或 cv::Mat 获取以进行进一步处理?
【问题讨论】:
-
您需要从图像中找出超平面坐标,还是从 svm 参数中找出数学上的坐标?
-
数学上来自 SVM 参数。