我试图计算丝网印刷纸中的斑点。目的是发现丝网印刷中的缺陷,例如连接的斑点或切割的斑点等。
打印的图案具有非常接近的平行线。这会导致阈值设置不正确,阈值设置时某些线会接合,从而导致错误的结果。
我尝试了Aforge和EMGU。尝试腐蚀和膨胀(反转后)运气不好,平行的细线要么消失,要么加入这两个过程。
Grayscale filtergrayscale = new Grayscale(0.2125, 0.7154, 0.0721);
grayImage = filtergrayscale.Apply(InitialImg);
Threshold filterthreshold = new
Threshold(Convert.ToInt16(numericUpDown1.Value));
ThresholdImage= filterthreshold.Apply(grayImage);
Dilatation3x3 dilate = new Dilatation3x3();
DilateImage = dilate.Apply(ThresholdImage);
Invert filter = new Invert();
InvertImage = filter.Apply(DilateImage );
BlobsFiltering filterblobsize = new BlobsFiltering();
filterblobsize.CoupledSizeFiltering = true;
filterblobsize.MinWidth = Convert.ToInt32(numericUpDown3.Value);
filterblobsize.MinHeight = Convert.ToInt32(numericUpDown3.Value);
Blobsizeimage = filterblobsize.Apply(InvertImage );
BlobCounter bc = new BlobCounter(blobsizeimage);
bc.ObjectsOrder = ObjectsOrder.Size;
Blob[] blobs = bc.GetObjectsInformation();
label26.Text = blobs.Length.ToString();
ImageBox1.image = Blobsizeimage ;
我试图将细的闭合线清楚地分开以获取正确的斑点数。