morphology (dilate, erode)

remotes/origin/master
syneffort 3 years ago
parent 9dc88aade3
commit 9e6ea4d313
  1. 4
      OpenCV/Form1.cs
  2. 54
      OpenCV/OpenCVClass.cs

@ -39,7 +39,9 @@ namespace OpenCV
OpenCVClass Converter = new OpenCVClass();
pictureBoxIpl1.ImageIpl = src;
pictureBoxIpl2.ImageIpl = Converter.HSVRed(src);
//Converter.ConvKernel = new IplConvKernel(3, 3, 1, 1, ElementShape.Rect);
pictureBoxIpl2.ImageIpl = Converter.EDImage(src, 50, 10);
}
catch (Exception ex)
{

@ -20,6 +20,9 @@ namespace OpenCV
IplImage draw;
IplImage hsv;
IplImage hsvRed;
IplImage morp;
IplConvKernel convKernel;
public IplImage GrayScale(IplImage src)
{
@ -35,10 +38,10 @@ namespace OpenCV
return inversion;
}
public IplImage Binary(IplImage src)
public IplImage Binary(IplImage src, int threshold)
{
bin = GrayScale(src);
Cv.Threshold(bin, bin, 150, 255, ThresholdType.Binary);
Cv.Threshold(bin, bin, threshold, 255, ThresholdType.Binary);
return bin;
}
@ -206,6 +209,44 @@ namespace OpenCV
}
}
public IplImage DilateImage(IplImage src, int threshold, int iteration)
{
morp = new IplImage(src.Size, BitDepth.U8, 1);
bin = Binary(src, threshold);
Cv.Dilate(bin, morp, convKernel, iteration);
return morp;
}
public IplImage ErodeImage(IplImage src, int threshold, int iteration)
{
morp = new IplImage(src.Size, BitDepth.U8, 1);
bin = Binary(src, threshold);
Cv.Erode(bin, morp, convKernel, iteration);
return morp;
}
public IplImage DEImage(IplImage src, int threshold, int iteration)
{
morp = new IplImage(src.Size, BitDepth.U8, 1);
bin = Binary(src, threshold);
Cv.Dilate(bin, morp, convKernel, iteration);
Cv.Erode(morp, morp, convKernel, iteration);
return morp;
}
public IplImage EDImage(IplImage src, int threshold, int iteration)
{
morp = new IplImage(src.Size, BitDepth.U8, 1);
bin = Binary(src, threshold);
Cv.Erode(morp, morp, convKernel, iteration);
Cv.Dilate(bin, morp, convKernel, iteration);
return morp;
}
public void Dispose()
{
Release(
@ -223,8 +264,15 @@ namespace OpenCV
perspective,
draw,
hsv,
hsvRed
hsvRed,
morp
);
}
public IplConvKernel ConvKernel
{
get { return this.convKernel; }
set { this.convKernel = value; }
}
}
}

Loading…
Cancel
Save