我试图以MCQ形式检测彩色圆圈,只要颜色适合圆圈内部,就会检测到空白圆圈和彩色圆圈,一旦颜色在外面,它就不会检测到圈子了! Plz帮助。! 我正在应用这些过滤器:
FiltersSequence seq = new FiltersSequence();
seq.Add(Grayscale.CommonAlgorithms.BT709); //First add grayScaling filter
seq.Add(new OtsuThreshold()); //Then add binarization(thresholding) filter
temp = seq.Apply(source); // Apply filters on source image
然后通过Blob检测和isCircle函数,如图所示,只要颜色适合圆圈内部,它就会检测所有圆圈(空白或彩色),如何修复它以使其检测每个圆圈?
答案 0 :(得分:0)
在你的朋友圈子中,所有时间圈子都取决于人们的写作方式,搜索圈子并不是一个好主意。
我的想法是使用颜色过滤来丢弃红色(空心圆圈)和其他过滤以消除线条和数字,也许使用OtsuThreshold你可以获得它,一个黑色背景图像,只有彩色圆圈。
我用您的图片进行测试,
1)hslfilter hue min 222 max 277,sat 0.204,0.675; lum 0.000,0.706
2)灰度
3)阈值12
4)bolbs过滤小到55)使用颜色构建组件以显示每个blob(仅用于查看如何检测blob)。
Voila:
在结果图像中,所有blob都是正响应
用于测试过滤器序列使用aforge http://www.aforgenet.com/projects/iplab/downloads.html
中的图像处理实验室如果你需要知道答案是b c还是d,那么这个过程就是 重新调整图像以获得每张图片的尺寸标准。并读取每个blob的位置属性(X,Y)以获得if是1D还是64C。
可能更容易阅读
列出aswers =使用矩形并剪切每一列(a,b,c,d)。
此列表中的检测斑点的x属性以检测具有正响应的数字