GTX_AI 发表于 2020-12-30 21:39:25

opencvsharp基础知识

opencvsharp,二值化方法,注意含义。

类型>thresh<=thresh
THRESH_BINARYmaxval0
THRESH_BINARY_INV0maxval
THRESH_TRUNCthreshsrc
THRESH_TOZEROsrc0
THRESH_TOZERO_INV0src

            Mat img1 = Cv2.ImRead("D:/dd.png ");
            Mat img2 = Cv2.ImRead("D:/ss.png");

            Mat ROIs = new Mat(img2.Height, img2.Width, MatType.CV_8UC3, Scalar.All(255));
            Rect Roi = new Rect(0, 0, img2.Width, img2.Height);
            img1.CopyTo(ROIs);

            Mat img2gray = new Mat(img2.Height, img2.Width, MatType.CV_8UC1, Scalar.All(255));
            Cv2.CvtColor(img2, img2gray, ColorConversionCodes.BGR2GRAY);
            Mat mask = new Mat();
            Cv2.Threshold(img2gray, mask, 200, 255, ThresholdTypes.Binary);
            Mat mask_inv = new Mat();
            Cv2.BitwiseNot(mask, mask_inv);

            Mat img1_bg = new Mat();
            Cv2.BitwiseAnd(ROIs, img2, img1_bg, mask);

            Mat dst = new Mat();
            Cv2.BitwiseAnd(img2, img2, dst, mask_inv);

            Mat dst2 = new Mat();
            Cv2.Add(img1_bg, dst, dst2);

            dst2.CopyTo(img1);

            Cv2.ImShow("mask", mask);
            Cv2.ImShow("mask_inv", mask_inv);
            Cv2.ImShow("img1_bg", img1_bg);
            Cv2.ImShow("dst", dst);
            Cv2.ImShow("img1", img1);
            Cv2.ImShow("img2", img2);

            //Mat src_mask = 255 * Mat.Ones(src.Size(), MatType.CV_8U);
            //OpenCvSharp.Point center = new OpenCvSharp.Point(dst.Cols / 2, dst.Rows / 2);

            //Mat normal_clone = new Mat();
            //Mat mixed_clone = new Mat();
            //Cv2.SeamlessClone(src, dst, src_mask, center, normal_clone, SeamlessCloneMethods.NormalClone);
            //Cv2.SeamlessClone(src, dst, src_mask, center, mixed_clone, SeamlessCloneMethods.MixedClone);

            //Cv2.ImShow("ROI_img", src);
            //Cv2.ImShow("bg_img", dst);
            //Cv2.ImShow("normal_clone", normal_clone);
            //Cv2.ImShow("mixed_clone", mixed_clone);
            Cv2.WaitKey(0);

参考:
【1】使用C#winform和opencvsharp做一个小软件
【2】OpenCV3-Python常用轮廓检测方法
【3】Opencv学习笔记 OpencvSharp寻找并绘制最小外接圆
【4】opencv知道四个顶点的坐标,截取ROI(C++/opencv3.1)(和C#OpencvSharp版本)
【5】使用Opencvsharp进行图像旋转矫正截取兴趣区域
【6】OpenCV学习——轮廓检测https://blog.csdn.net/zb1165048017/article/details/109404373
【7】基于OpenCvSharp的数字图像处理 - 二值化
【8】OpenCVSharp学习之模板匹配
【9】OpenCvSharp 学习笔记7 --绘制图形和文字
【10】OpencvSharp图像融合
【11】opencv 实现图像融合
【12】OpenCV之bitwise_and、bitwise_not等图像基本运算及掩膜
【13】OpenCV 中BoundingRect、minAreaRect的用法区别

页: [1]
查看完整版本: opencvsharp基础知识