我正在开发一个应用程序,该应用程序试图使用OpenCV的Harris Corner拍摄以前拍摄的照片中的角落。
因为我正在Swift中开发主框架,所以我使用了桥接头文件和.mm文件,使我可以使用OpenCV的HarrisCorner方法。
我认为我已经能够正确使用HarrisCorners,但是我无法实际设置阈值并将必要的点提取到数组中。
我正在遵循本教程https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html,并在.mm文件Objective C ++中复制这些步骤。我唯一不知道如何复制的部分是设置分数的阈值。
本质上,我的问题是我不知道如何将这行代码从C#复制到Objective C ++
# Threshold for an optimal value, it may vary depending on the image.
img[dst>0.01*dst.max()]=[0,0,255]
这是我用来传递HarrisCorner的“图像”的代码
+ (UIImage *)harrisonCorners:(UIImage *)image {
cv::Mat mat;
[image convertToMat: &mat];
cv::Mat gray, corner, dst;
if (mat.channels() > 1) {
cv::cvtColor(mat, gray, CV_RGB2GRAY);
} else {
mat.copyTo(gray);
}
cv::cornerHarris(gray, corner, 2, 3, 0.04); //Values I followed from the above tutorial
return [self UIImageFromCVMat: corner];
}
如何将高于特定阈值的点提取到数组中?
感谢您的帮助。