C# Opencv黑点检测

C# Opencv黑点检测,c#,android,opencv,xamarin,C#,Android,Opencv,Xamarin,我试图在照相机拍摄的照片上使用SimpleblopFeatureDetector 应该是7到107个斑点。有时工作,但在改变环境光线或设备阴影时通常不工作 如果我更改阈值,它就会工作 我尝试了ThreshOtsu它在阴影上不起作用,但是Binarry 90-133一般都起作用,也许我的过滤器不正确,我不知道 我的代码: Imgproc.CvtColor(m, m, Imgproc.ColorRgb2gray); Imgproc.GaussianBlur(m, m, new Org.Opencv.

我试图在照相机拍摄的照片上使用
Simpleblop
FeatureDetector

应该是7到107个斑点。有时工作,但在改变环境光线或设备阴影时通常不工作

如果我更改阈值,它就会工作

我尝试了
ThreshOtsu
它在阴影上不起作用,但是Binarry 90-133一般都起作用,也许我的过滤器不正确,我不知道

我的代码:

Imgproc.CvtColor(m, m, Imgproc.ColorRgb2gray);
Imgproc.GaussianBlur(m, m, new Org.Opencv.Core.Size(5, 5), 30);
Imgproc.MorphologyEx(m, m, Imgproc.MorphClose, Imgproc.GetStructuringElement(Imgproc.MorphRect, new Size(15, 15)));
Imgproc.Threshold(m, m, 122, 255, Imgproc.ThreshBinary);

MatOfKeyPoint matOfKeyPoints = new MatOfKeyPoint();
FeatureDetector blobDetector = FeatureDetector.Create(FeatureDetector.Simpleblob);
blobDetector.Detect(m, matOfKeyPoints);
我在做什么:

我应该怎么做才能进行清晰的检测?像这样:


这对我来说已经足够清楚了。只是用一些方法去除边缘黑影(洪水可能),你很好。是的,很清晰,但我不知道阴影有多清晰,我搜索了很多次,但每个人都告诉我怎么做,我找不到code@AleksandarToplek如果你知道怎么做,请分享一些代码或link。我没有使用OpenCV,但亮度阈值为0.4,我基本上是对的,如果我排除了所有小于平均斑点大小2/3的斑点,所有的边缘噪声都被去除了,这对我来说已经足够清楚了。只是用一些方法去除边缘黑影(洪水可能),你很好。是的,很清晰,但我不知道阴影有多清晰,我搜索了很多次,但每个人都告诉我怎么做,我找不到code@AleksandarToplek如果你知道怎么做,请分享一些代码或link。我没有使用OpenCV,但亮度阈值为0.4,我基本上是对的,如果我排除了所有小于平均斑点大小2/3的斑点,所有的边缘噪声都被去除了。