You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openCV/OpenCV/OpenCVClass.cs

74 lines
2.0 KiB

3 years ago
using OpenCvSharp;
using System;
namespace OpenCV
{
class OpenCVClass : IDisposable
{
IplImage gray;
IplImage inversion;
IplImage bin;
3 years ago
IplImage blur;
3 years ago
IplImage zoomin;
IplImage zoomout;
3 years ago
public IplImage GrayScale(IplImage src)
{
gray = new IplImage(src.Size, BitDepth.U8, 1);
Cv.CvtColor(src, gray, ColorConversion.BgrToGray);
return gray;
}
public IplImage InversionImage(IplImage src)
{
inversion = new IplImage(src.Size, BitDepth.U8, 3);
Cv.Not(src, inversion);
return inversion;
}
public IplImage Binary(IplImage src)
{
bin = GrayScale(src);
Cv.Threshold(bin, bin, 150, 255, ThresholdType.Binary);
return bin;
}
3 years ago
public IplImage Blur(IplImage src)
{
blur = new IplImage(src.Size, BitDepth.U8, 3);
Cv.Smooth(src, blur, SmoothType.Blur, 9); // param1은 홀수, 중간 픽셀 선택을 위함
return blur;
}
3 years ago
public IplImage ZoomIn(IplImage src)
{
zoomin = new IplImage(new CvSize(src.Width * 2, src.Height * 2) , BitDepth.U8, 3);
Cv.PyrUp(src, zoomin, CvFilter.Gaussian5x5);
return zoomin;
}
public IplImage ZoomOut(IplImage src)
{
zoomout = new IplImage(new CvSize(src.Width / 2, src.Height / 2), BitDepth.U8, 3);
Cv.PyrDown(src, zoomout, CvFilter.Gaussian5x5);
return zoomout;
}
3 years ago
public void Dispose()
{
if (gray != null)
Cv.ReleaseImage(gray);
if (inversion != null)
Cv.ReleaseImage(inversion);
if (bin != null)
Cv.ReleaseImage(bin);
3 years ago
if (blur != null)
Cv.ReleaseImage(blur);
3 years ago
if (zoomin != null)
Cv.ReleaseImage(zoomin);
if (zoomout != null)
Cv.ReleaseImage(zoomout);
3 years ago
}
}
}