Hello Mat

 找回密码
 立即注册
查看: 7210|回复: 0

opencvsharp基础知识

[复制链接]

84

主题

115

帖子

731

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
1467
发表于 2020-12-30 21:39:25 | 显示全部楼层 |阅读模式
opencvsharp,二值化方法,注意含义。
类型>thresh<=thresh
THRESH_BINARYmaxval0
THRESH_BINARY_INV0maxval
THRESH_TRUNCthreshsrc
THRESH_TOZEROsrc0
THRESH_TOZERO_INV0src

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

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

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

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

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

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

  18.             dst2.CopyTo(img1[Roi]);

  19.             Cv2.ImShow("mask", mask);
  20.             Cv2.ImShow("mask_inv", mask_inv);
  21.             Cv2.ImShow("img1_bg", img1_bg);
  22.             Cv2.ImShow("dst", dst);
  23.             Cv2.ImShow("img1", img1);
  24.             Cv2.ImShow("img2", img2);

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

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

  31.             //Cv2.ImShow("ROI_img", src);
  32.             //Cv2.ImShow("bg_img", dst);
  33.             //Cv2.ImShow("normal_clone", normal_clone);
  34.             //Cv2.ImShow("mixed_clone", mixed_clone);
  35.             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的用法区别

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-4-24 04:45 , Processed in 0.227544 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表