【发布时间】:2016-03-29 17:22:57
【问题描述】:
我使用 opencv249 和 Visual Studio 2013 提取了图像中区域的四个特征。代码如下:
vector<double> calculateFeatures(Mat src, Mat mask, Rect Rect){
vector<double> sonuc;
double Feature1, Feature2, Feature3, Feature4;
Mat bolum(src, Rect);
Scalar mean_number = mean(src, mask);
double num = mean_number.val[0];
double minVal;
double maxVal = 0;
Point minLoc;
Point maxLoc = 0;
minMaxLoc(bolum, &minVal, &maxVal, &minLoc, &maxLoc);
double fark = num - minVal;
Feature1 = fark;
double thresh = num*0.95;
int sayi = countNonZero(bolum < thresh);
int alan = countNonZero(mask);
double pixelSayisi = sayi / alan;
Feature2 = pixelSayisi;
Mat dst, smoothed;
GaussianBlur(bolum, smoothed, Size(25, 25), 4, 4);
Laplacian(smoothed, dst, CV_8UC1, 25, 1, 0, BORDER_DEFAULT);
cv::Scalar s = cv::sum(dst);
double toplam = s.val[0];
Feature3 = toplam;
cout << "s: " << s << endl;
Mat dst2;
cornerHarris(bolum, dst2, 2, 25, 0.04, BORDER_DEFAULT);
Scalar top = sum(dst2);
double top2 = top.val[0];
Feature4 = top2 / alan;
cout << "Feature4: " << Feature4 << endl;
sonuc.push_back(Feature1);
sonuc.push_back(Feature2);
sonuc.push_back(Feature3);
sonuc.push_back(Feature4);
return sonuc;
}
我想查看该区域的代表性特征图像,以评估特征是否有用。我该如何实施?
【问题讨论】:
标签: c++ opencv feature-extraction