当前位置: 首页 > wzjs >正文

招生平台网站开发最近国际新闻大事

招生平台网站开发,最近国际新闻大事,东莞长安网站优化,百度手机网站自助建站C#opencv 遍历图像中所有点 不在圆范围内的点变为黑色,在圆范围内的保持原色 安装 Install-Package OpenCvSharp4 Install-Package OpenCvSharp4.Windows 普通实现 using System; using System.Collections.Generic; using System.Linq; using OpenCvSharp; // 添加OpenCV引用…

C#opencv 遍历图像中所有点 不在圆范围内的点变为黑色,在圆范围内的保持原色

安装 Install-Package OpenCvSharp4
Install-Package OpenCvSharp4.Windows

普通实现

using System;
using System.Collections.Generic;
using System.Linq;
using OpenCvSharp; // 添加OpenCV引用class Program
{static void Main(string[] args){// 原有代码...// 添加圆形遮罩处理图像的示例ProcessImageWithCircleMask("input.jpg", "output.jpg", 300, 300, 200);}// 处理图像,将不在圆范围内的点变为黑色static void ProcessImageWithCircleMask(string inputPath, string outputPath, int centerX, int centerY, int radius){try{// 读取图像using (Mat src = Cv2.ImRead(inputPath)){if (src.Empty()){Console.WriteLine("无法读取图像!");return;}// 创建一个与原图像大小相同的黑色图像using (Mat result = Mat.Zeros(src.Size(), src.Type())){// 遍历图像中的每个像素for (int y = 0; y < src.Height; y++){for (int x = 0; x < src.Width; x++){// 计算点到圆心的距离double distance = Math.Sqrt(Math.Pow(x - centerX, 2) + Math.Pow(y - centerY, 2));// 如果点在圆内,保持原色;否则为黑色if (distance <= radius){// 获取原图像的像素值并设置到结果图像中Vec3b color = src.Get<Vec3b>(y, x);result.Set(y, x, color);}}}// 保存结果图像Cv2.ImWrite(outputPath, result);Console.WriteLine($"处理完成,结果已保存到 {outputPath}");}}}catch (Exception ex){Console.WriteLine($"处理图像时出错: {ex.Message}");}}// 生成随机坐标点static List<Point> GenerateRandomPoints(int count, int minX, int maxX, int minY, int maxY){// 原有代码...}// 其他原有方法...
}// 原有类定义...

如果你想要更高效的实现,可以使用OpenCV的内置函数:

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace resistanceWelding
{class testOpencv{public static void ProcessImageWithCircleMaskEfficient(string inputPath, string outputPath, int centerX, int centerY, int radius){try{// 读取图像using (Mat src = Cv2.ImRead(inputPath)){if (src.Empty()){Console.WriteLine("无法读取图像!");return;}// 创建一个与原图像大小相同的黑色掩码using (Mat mask = Mat.Zeros(src.Size(), MatType.CV_8UC1)){// 在掩码上绘制白色圆形Cv2.Circle(mask, new Point(centerX, centerY), radius, Scalar.White, -1);// 创建结果图像using (Mat result = new Mat(src.Size(), src.Type(), Scalar.Black)){// 使用掩码将原图像复制到结果图像src.CopyTo(result, mask);// 保存结果图像Cv2.ImWrite(outputPath, result);Console.WriteLine($"处理完成,结果已保存到 {outputPath}");}}}}catch (Exception ex){Console.WriteLine($"处理图像时出错: {ex.Message}");}}}
}

类型转换

需要安装   OpenCvSharp4.Extensions

using Cognex.VisionPro;
using Cognex.VisionPro.ImageFile;
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace resistanceWelding
{class testOpencv{public static void ProcessImageWithCircleMaskEfficient(string inputPath, string outputPath, int centerX, int centerY, int radius){try{int dd = 2;Mat src;if(dd == 22){// 读取图像src = Cv2.ImRead(inputPath);}//else if(dd == 1)//{//    CogImageFile cogImage = new CogImageFile();//    cogImage.Open(inputPath, CogImageFileModeConstants.Read);//}else{var originalBitmap = new System.Drawing.Bitmap(inputPath);src = OpenCvSharp.Extensions.BitmapConverter.ToMat(originalBitmap);}if (src.Empty()){Console.WriteLine("无法读取图像!");return;}// 创建一个与原图像大小相同的黑色掩码Mat mask = Mat.Zeros(src.Size(), MatType.CV_8UC1);// 在掩码上绘制白色圆形Cv2.Circle(mask, new Point(centerX, centerY), radius, Scalar.White, -1);// 创建结果图像Mat result = new Mat(src.Size(), src.Type(), Scalar.Black);// 使用掩码将原图像复制到结果图像src.CopyTo(result, mask);// 保存结果图像Cv2.ImWrite(outputPath, result);Console.WriteLine($"处理完成,结果已保存到 {outputPath}");}catch (Exception ex){Console.WriteLine($"处理图像时出错: {ex.Message}");}}}
}

C# 图像之间转换代码_c# bitmap.palette-CSDN博客

//转为 bitmap方法一:
Bitmap map = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat);
process_pictureBox.Image = map;

//转为 bitmap方法二:

Bitmap map = new Bitmap(mat.ToMemoryStream());
process_pictureBox.Image = map;


//Image img 转为Mat
Bitmap bitmap = new Bitmap(img);//Image img
OpenCvSharp.Mat mat = OpenCvSharp.Extensions.BitmapConverter.ToMat(bitmap);//用
 
//bitmap转换为mat
C#中Bitmap 与 Image 之间的转换
Image img = pictureBox1.Image;
Bitmap map = new Bitmap(img);
 
//而Bitmap直接可以赋值 给 Image 对象
 
Image img = Bitmap;

http://www.dtcms.com/wzjs/207379.html

相关文章:

  • 兰州百度网站建设如何制作网页教程
  • 零售客户电商网站登录万维网域名注册查询
  • 青岛开发区网站建设哪家好百度推广seo怎么学
  • 做网站税费职业技能培训网站
  • 怎样查看网站是用什么做的谷歌google
  • 我国政府门户网站建设现状网站搭建工具
  • 如何兼职做网站指数搜索
  • 网站权重与排名浅谈网站关键词优化推广哪家快
  • 网站托管服务提供商互联网营销师证书有用吗
  • 郑州网站建设哪里好南宁网站快速排名提升
  • 哪个网站做加盟手机seo排名软件
  • 如何用jave做网站网站建设详细方案模板
  • 建站模板免费百度推广助手app下载
  • 广州网络兼职网站建设网店推广软文范例
  • 如何仿做网站香港服务器
  • google网站收录入口全网引流推广 价格
  • 在哪个网站可以找做海报的模板如何推广网址链接
  • 安监局网站做应急预案备案游戏推广公司好做吗
  • wordpress第一篇文章id潍坊seo网络推广
  • 企业手机网站建设策划书最有效的线上推广方式
  • 中堂镇仿做网站seo单页面优化
  • 网站的客服一般怎么做的深圳网站优化推广方案
  • 课程视频网站建设的必要性广州网页定制多少钱
  • 系统开发中强调系统的整体性深圳优化排名公司
  • 做搜狗手机网站排名软百度广告位价格
  • 有什么网站可以做团购今天重大新闻国内最新消息
  • 室内设计方案ppt作业东莞网站优化
  • 做网站还是博客网上推广怎么做
  • 青岛专业网站制作团队百度页面推广
  • 旅游网站的建设现状谷歌seo优化中文章