はじめに
撮影した画像を見やすくする前処理として有名な
「膨張」「縮小」「オープン」「クローズ」「平均値」「ガウシアン」「中央値(メディアン)」「バイラテラル」フィルタを使ってみた
手順
-
VisualStudioにOpenCVSharp4とOpenCVSharp4.runtime.winをインストール
-
以下のプログラムを実行
using System;
using OpenCvSharp;
namespace 基本的な前処理 {
class Program {
static void Main(string[] args) {
Mat src = new Mat(@"D:\icon.jpg");
Mat erode = new Mat(),
dilate = new Mat(),
opening = new Mat(),
closing = new Mat(),
blur = new Mat(),
gaussian = new Mat(),
median = new Mat(),
bilateral = new Mat();
Cv2.CvtColor(src, src, ColorConversionCodes.RGB2GRAY);
Cv2.Erode( src, erode, Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5,5)));
Cv2.Dilate(src, dilate, Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5,5)));
Cv2.MorphologyEx(src, opening, MorphTypes.Open , Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5, 5)));
Cv2.MorphologyEx(src, closing, MorphTypes.Close, Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5, 5)));
Cv2.Blur(src, blur, new Size(5, 5));
double sigma = 0;
Cv2.GaussianBlur(src, gaussian, new Size(5, 5), sigma);
Cv2.MedianBlur(src, median, 5);
int d = 5;
double sigmaColor = 75;
double sigmaSpace = 75;
Cv2.BilateralFilter(src, bilateral, d, sigmaColor, sigmaSpace);
Cv2.ImShow("src" , src);
Cv2.ImShow("erode" , erode);
Cv2.ImShow("dilate" , dilate);
Cv2.ImShow("opening" , opening);
Cv2.ImShow("closing" , closing);
Cv2.ImShow("blur" , blur);
Cv2.ImShow("gaussian" , gaussian);
Cv2.ImShow("median" , median);
Cv2.ImShow("bilateral", bilateral);
Cv2.WaitKey();
Cv2.DestroyAllWindows();
}
}
}
参考
http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_filtering/py_filtering.html#filtering
https://algorithm.joho.info/programming/image-processing/
https://docs.opencv.org/4.0.0/
https://github.com/shimat/opencvsharp