c# 圆形图空间频率测试

安装必要包

安装OpenCvSharp4

using OpenCvSharp;
using OpenCvSharp.Extensions;

在这里插入图片描述在这里插入图片描述
sunnyui
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验介绍

还没做完,就做完了讲的那几个功能,以后有空给补上
在这里插入图片描述
1、通过导入图片按钮将图片导入进去
2、按照图片显示比例,对图片进行缩放
3、然后转为灰度
4、接着按照分析范围,对图片进行裁剪,这里的裁剪是对中间部分开始进行的裁剪

  • 分析范围需要除以100,再乘以图片实际的长度和宽度,作为应该分析的长度和宽度了;
  • 将实际的长度和宽度减去需要分析的长度和宽度除以2,就可以得到左上角的点了;这样就OK了

5、通过点击取中心点按钮,实现确定图片中心点的功能(返回的中心点数据可以知道,但是还没有对返回的数据进行处理)

  • 原理是首先new 获得中心点信息的窗体
  • 在本来的.cs中制作一张图片 通过函数接口传入
  • 经过一系列处理后,可以通过对象.里面的元素,就可以获得双击界面里面所得到的中心点的坐标值。

6、MTF测试

  • 主要是使用了 .Ptr(centery + pixel_y);可以获得某一行/列或者某一个像素的值
  • 然后对这个取到的像素点进行处理

7、数据处理

  • 也就是先使用 Fit.Polynomial 对得到的数据,进行二次拟合函数(也就是什么x对应什么y)
  • 根据二次拟合结果就可以得到 一条函数,此时就可以计算我们需要的x对应的y的值
  • 还可以将数据显示在chart中,这一步我还没有做

前期

using OpenCvSharp;
using OpenCvSharp.Extensions;
using MathNet.Numerics;
        public static Mat img;
        public static Mat img2;
        public static Mat gray;
        public static Mat STAR;
        public static Mat rings_Display = new Mat();

        public static int centroidx ;//装载点击的中心点坐标
        public static int centroidy;
        public static int centerx ;//很小的那张图的宽度 加上中心点的坐标
        public static int centery ;
        public static double STAR_R = 0;//所画圆(最外圈)的半径


        public double[] LPPH_disp;
        public double[] MTF_ring_disp;
        public double[] LPPH_fit_Data;
        public double[] MTF_fit_Data;
        public double MTF_30P = 0;
        public double MTF_50P = 0;
        public double Angular_freq_30P = 0;
        public double Angular_freq_50P = 0;
        public double LPMM_30P = 0;
        public double LPMM_50P = 0;

导入图片

导入图片并显示在pictureBox上

在这里插入图片描述

img = new Mat($@"{ofd.FileName}");

            OpenFileDialog ofd = new OpenFileDialog();
            //Filter属性可以过滤要选择的文件类型
            ofd.Filter = "(*.jpg)|*.jpg|(*.png)|*.png";//这样只显示了.docx的文件 我新建的doc和txt文件都没有显示出来
            ofd.Title = "请选择图片";//title 属性属性可以设置文件对话框的标题
                                // ofd.Multiselect = true;//表示可以多选 默认是不可以多选的

            ofd.InitialDirectory = @"F:\StudyData_ele\test\cSharp\SFR\SFRTest\TestPic";//初始打开目录
                                                                                       //ofd.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);//这是系统提供的桌面路径,还可以是其他的路径:比如文档、音乐等文件夹

            if (ofd.ShowDialog() == DialogResult.OK)
            {
   



                img = new Mat($@"{ofd.FileName}");//注意这里要这样写 因为直接获得的地址里面的是\而不是\\
                                                  //Mat img = new Mat(@"F:\StudyData_ele\Project\simaite\endoscope\新版\picTest\WindowsFormsApp1\pic\1.jpg");
                img2 = new Mat();//用来保存裁剪后的图片

                OpenCvSharp.Size i;
                i.Width = 0;
                i.Height = 0;
                try
                {
   
                    double picsize = double.Parse(textBox1.Text)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值