目录


///
/// Applies an adaptive threshold to an array.
///
/// Source 8-bit single-channel image.
/// Destination image of the same size and the same type as src .
/// Non-zero value assigned to the pixels for which the condition is satisfied. See the details below.
/// Adaptive thresholding algorithm to use, ADAPTIVE_THRESH_MEAN_C or ADAPTIVE_THRESH_GAUSSIAN_C .
/// Thresholding type that must be either THRESH_BINARY or THRESH_BINARY_INV .
/// Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on.
/// Constant subtracted from the mean or weighted mean (see the details below).
/// Normally, it is positive but may be zero or negative as well.
public static void AdaptiveThreshold(InputArray src, OutputArray dst,double maxValue, AdaptiveThresholdTypes adaptiveMethod, ThresholdTypes thresholdType, int blockSize, double c)
- using OpenCvSharp;
- using System;
- using System.Drawing;
- using System.Windows.Forms;
-
- namespace OpenCvSharp_Demo
- {
- public partial class frmMain : Form
- {
- public frmMain()
- {
- InitializeComponent();
- }
-
- string image_path = "";
-
- private void Form1_Load(object sender, EventArgs e)
- {
- image_path = "1.jpg";
- pictureBox1.Image = new Bitmap(image_path);
- }
-
- private void button2_Click(object sender, EventArgs e)
- {
-
- Mat gray = new Mat(image_path, ImreadModes.Grayscale);
-
- Mat binary = new Mat();
-
- Cv2.AdaptiveThreshold(~gray, binary, 255, AdaptiveThresholdTypes.MeanC, ThresholdTypes.Binary, 15, -2);
-
- Mat kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new OpenCvSharp.Size(4, 4), new OpenCvSharp.Point(-1, -1));
-
- //开运算
- Mat dst = new Mat();
- Cv2.MorphologyEx(binary, dst, MorphTypes.Open, kernel);
-
- pictureBox2.Image = new Bitmap(dst.ToMemoryStream());
-
- }
-
- }
- }