- 博客(159)
- 资源 (16)
- 收藏
- 关注
原创 【Matlab学习手记】简单的印章提取
简单的印章提取程序网上随便找了一幅图,效果如下:原理:主要根据R、G、B三个颜色分量的差异来实现。这个程序比较简单,要求印章颜色和背景文字颜色有明显差异,这样方便根据RGB的差异来提取目标信息。clear; clc;imData = imread('test.jpg');[m, n, r] = size(imData);reData = imData;for i =...
2019-12-01 13:39:14 2201
原创 【Matlab学习手记】多元非线性回归
介绍两种方法做多元非线性回归:lsqcurvefit、Adagrad 法。lsqcurvefit是Matlab提供的内置函数,用于基于最小二乘的曲线拟合问题;Adagrad是一种基于梯度的迭代方法,特点在步长不固定,随着迭代次数变化。clear; clc;% 多元非线性回归模型% z = w1 * exp(-x / w2) + w3 * y% z = 10 * exp(-x / 5...
2019-08-16 10:46:15 7597 7
原创 【Matlab学习手记】多元线性回归
介绍多元线性回归的三种方法:regress、左除、Adagrad梯度下降法。regress是Matlab内置函数,用于数据回归分析;左除这个思想很有用,可以解决很多问题,多元线性回归、多项式回归都可以用到这个方法;Adagrad是一种梯度方法。clear; clc;% 多元线性回归模型% z = w1 * x + w2 * y + w3% z = 5 * x + 10 * ...
2019-08-16 10:29:46 2927
原创 【Matlab学习手记】梯度下降法
用一个实例来理解两种梯度下降方法。clear; clc;%% 一元函数梯度下降法% 示例:f(x) = min{(x - 1)^2}% 梯度:g(x) = 2 * (x - 1)yita = 0.25; % 学习率,一般设置小一点,否则容易在最小值附近震荡或者不收敛x1 = -5 : 0.1 : 5;y1 = (x1 - 1).^2;iteMax = 1000;xI...
2019-08-14 16:33:51 1574 4
原创 【Matlab学习手记】绘制带箭头直线
Matlab提供了绘制箭头的函数,如以下函数及效果图,可见,此函数绘制的范围限定在[0, 1]之间,如果要在指定位置绘制箭头,则此方法不可取,需要重新定义绘图函数,将实际坐标换算到[0, 1]之间。annotation('arrow', [0, 1], [0, 1]);源代码function PlotLineArrow(obj, x, y, markerColor, line...
2019-08-14 15:07:56 13416
原创 【WPF学习手记】图像动态播放并保存为gif 动图
本demo实现两个目的:1. 图片的循环播放; 2. 生成 gif 动图;思路:循环播放采用计时器;生成 gif 采用官方的函数,貌似只播放一次,不能循环播放。xaml代码<Window x:Class="GifSave.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen...
2019-08-12 11:22:34 628
原创 【WPF学习手记】RenderTargetBitmap转BitmapImage、System.Drawing.Image
最开始的目的是保存控件为图片,然后保存到Excel中(Epplus库)。控件保存成图片// UI --> Pngpublic static void UISaveToPng(this FrameworkElement ui, string fileName){ int width = (int)ui.ActualWidth; int height = (int)u...
2019-08-06 14:13:11 4789
原创 【Matlab学习手记】Matlab积分问题
一个程序彻底搞懂Matlab的数值积分、符号积分问题。数值积分问题,给定被积分函数和积分上下限,使用 integral 函数得到积分值; 符号积分问题,通常结果是解析解,即需要知道被积分函数的原函数表达式;如果原函数未知或者表达形式过于复杂(同样没有明确的表达式),可以自定义一个积分函数(给定一个积分区间,返回一个积分值)来简短表达; 一重积分问题本质上得到的是面积,当然可以用积分定义来计...
2019-07-26 14:57:31 1508
原创 【Matlab学习手记】Matlab绘制Bezier曲线
原理部分 Bezier曲线由一系列控制点决定,每个点的坐标都是控制点坐标的线性组合,权系数随时间变化,权系数之和为1(0到1之间)。假设有四个控制点P0,P1,P2和P3,那么Bezier曲线可以表示为:J30(t) = (1 - t)^3J31(t) = 3 * (1 - t)^2 * tJ32(t) = 3 * (1 - t) * t^2J33(t) = t^3P(t)...
2019-07-25 14:44:36 3094
原创 【WPF学习手记】WPF文本语音播报
WPF语音播报案例。引用:System.Speechxaml代码<Window x:Class="Text_Speech.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.c...
2019-07-12 13:28:42 1974
原创 【Matlab学习手记】基于最小二乘的非线性拟合
用一个实例来理解基于最小二乘的非线性拟合问题。原理部分代码部分clear; clc;M = 2000;t = 0.3 * (1 : M)';rng('default');ratio = 10;noise = ratio * randn(M, 1);Et = 1000 * exp(-t / 50) + 10 + noise;p1 = LSFittingT2Free(t...
2019-06-18 14:16:18 6823 3
原创 【Matlab学习手记】BP神经网络数据滚动预测
BP神经网络滚动预测未来数据:将预测的下一年数据作为已知数据继续预测下一年。代码clear; clc;data = [0 0.0252 0.0550 0.1104 0.1480 0.0252 0.0550 0.1104 0.1480 0.2111 0.0550 0.1104 0.14...
2019-06-05 23:46:21 11662 46
原创 【Matlab学习手记】二维高斯曲面拟合法定位光斑中心
1. 高斯曲面拟合法原理 终端探测器探测到的光斑灰度分布函数可近似看做高斯分布,因此可以通过二维高斯函数进行拟合,模型表示为: 效果图: 为了方便计算,做一步变换,两边取对数,得到: 展开并进一步变形为: 求解问题变为二元二次多项式拟合问题。2. 问题解法 此问题一般基于最小二乘来求解,这里提供两种思路,第...
2019-06-02 21:12:15 15515 8
原创 【Matlab学习手记】csv和xlsx格式互转
简单的几句代码实现 csv 格式和 xlsx 格式之间互转。clear; clc;files = dir('*.csv'); % 相对路径fileNumber = length(files);for i = 1 : fileNumber fileName = files(i).name; % 文件名,不带路径 [~, ~, context] = xlsread(...
2019-05-24 14:28:44 6782 2
原创 【WPF学习手记】WPF带有ToggleButton的ComboBox的样式设计
目的:ComboBox显示选中项的图标。 选中某项,ComboBox显示对应图标,并且ComboBox设置为选中和未选中两种状态。xaml代码<Window x:Class="ComboBoxStyle.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation...
2019-05-18 15:03:22 2164
原创 【WPF学习手记】OxyPlot制作ImageCanvas
自定义控件系列,基于OxyPlot开发。ImageCanvas控件 功能包括:二维数组图像显示;伪彩(十七种标准Colormap,支持自定义Colormap);支持绘制直线、折线、角度、椭圆(包括圆)、矩阵(包括正方形)、多边形即ROI、文本标注、箭头标注、标题;自动计算长度、角度、面积(像素点个数、总和、平均值);保存、加载绘制对象;保存 ROI数据模板;缩放、平移;旋转、翻转。...
2019-05-12 14:41:57 1919 5
原创 【WPF学习手记】OxyPlot绘制Surf图和Contour图
自定义控件系列,基于OxyPlot开发的。效果图二维数组显示控件,支持修改标题、设置X和Y范围、设置X和Y数值、设置对数或线性刻度、设置等高线数量、设置Colorbar。xmlns:surf="clr-namespace:SurfMaps;assembly=SurfMaps"<surf:MySurf Grid.Row="1" Name="mySurf"/>...
2019-04-24 11:32:28 3149 8
原创 【WPF学习手记】OxyPlot制作Colorbar
自定义控件系列,基于OxyPlot开发。效果图 六个接口函数,是否可编辑,设置最大、最小值,设置标准的 Colorbar,反转颜色,获取当前 Colorbar 的 RGB 数组;编辑模式下,双击左键弹出颜色选择框,自定义Colorbar;在节点处按Ctrl+右键可删除节点。xmlns:colorbar="clr-namespace:Colorbar;assembly=Col...
2019-04-24 11:27:07 1334
原创 【Matlab学习手记】图片随指定路径运动
效果图:代码:clear; clc;x = - 5 : 0.5 : 5;y = x.^2;minX = min(x);maxX = max(x);minY = min(y);maxY = max(y);h1 = axes('position', [0.1, 0.1, 0.8, 0.8]);plot(x, y);xlim([minX, maxX]);ylim([mi...
2019-04-19 21:21:09 2061 5
原创 【程序杂谈】DLL调试问题:无可用源,此模块的调试信息中缺少源信息
大致意思是,用C++写了一个算法,做成了dll,然后在C#里调用,在调试Dll的时候遇到了这样的问题。尝试了很多网上的方法,无效。经过三个多小时的挣扎,最后发现了问题在于,我运行的C#程序里给定的是相对路径,此时调试dll就会报错,修改为绝对路径之后,问题解决。这是个很容易被忽视的问题,dll调试要仔细,谨防路径问题。...
2019-04-13 00:35:37 6925
原创 【Matlab学习手记】Matlab裁剪三维曲面图
目的:实现三维曲面图的裁剪,即选择显示特定曲面。效果图: 测试代码:clear; clc;n = 1000;[x, y, z] = peaks(n);subplot(1, 2, 1)surf(x, y, z);shading interpview(0, 90)for i = 1:n% for j = 1:n% if x(i, j)...
2019-03-29 20:34:21 3313
原创 【WPF学习手记】Canny边缘检测
WPF图像处理系列,Canny算子进行边缘检测。原图和效果图代码// 边缘检测:Canny public static ImageSource GrayDataToImageEdgeCanny(this ushort[,] grayData, int[,] colorMap, int highThreshold, int lowThreshould, int max...
2019-02-26 15:52:46 558
原创 【WPF学习手记】Roberts边缘检测
WPF图像处理系列,Roberts算子进行边缘检测。原图和效果图代码:// 边缘检测:Roberts public static ImageSource GrayDataToImageEdgeRoberts(this ushort[,] grayData, int[,] colorMap, int maxValue = 65535) { ...
2019-02-26 15:50:34 473
原创 【WPF学习手记】图像锐化:拉普拉斯算子
WPF图像处理系列,拉普拉斯算子进行图像锐化。原图和效果图:代码// 锐化:拉普拉斯算子 public static ImageSource GrayDataToImageSharpen(this ushort[,] grayData, int[,] colorMap, int maxValue = 65535) { int ...
2019-02-26 15:46:36 679
原创 【WPF学习手记】图像模糊:高斯算子
WPF图像处理系列,高斯算子进行图像模糊。原图和效果图代码: // 模糊:高斯算子 public static ImageSource GrayDataToImageBlur(this ushort[,] grayData, int[,] colorMap, int maxValue = 65535) { in...
2019-02-26 15:41:47 1000
原创 【WPF学习手记】限定鼠标范围
一点设置:项目属性→生成→允许不安全代码(选中);xaml代码<Window x:Class="MouseLimited.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/...
2019-02-26 15:29:07 665
原创 【WPF学习手记】滚动条位置
实现滚动条位置和选中项对应。效果图xaml代码<Window x:Class="ListView_Scroll.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/wi...
2018-12-26 17:32:25 2631 2
原创 【WPF学习手记】进度条实时更新
实现一个实时更新的进度条。效果图xaml代码<Window x:Class="ProgressBar.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2...
2018-12-26 17:09:00 3035
原创 【WPF学习手记】资源下拉菜单引用
两种方式引用资源下拉菜单:直接在 Xaml 里引用,后台引用。效果图xaml代码<Window x:Class="ContextMenu_Resources.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s...
2018-12-26 16:46:48 1037
原创 【WPF学习手记】绘制箭头
先看一下效果图:思路:利用 Polygon 来绘制,整个polygon由5个点组成,按照:起点 --> 终点 --> 第三点 --> 第四点 --> 终点的顺序,最后填充颜色即可 。核心代码如下:public Polygon DrawArrow(double x1, double y1, double x2, double y2, double arrow...
2018-12-06 15:52:56 5938 5
原创 【Matlab学习手记】Matlab通过OLE方式操作Excel
一个实例搞懂Matlab通过OLE方式操作Excel,下面的这些代码都要自己输入,Matlab不会给出提示,不会自动补全,可以百度OLE方式访问Excel的代码,基本上所有的语言都是通用的,或者直接用Excel的录制宏来获悉未知的代码。function Matlab_Excel% Matlab 操作 Excel 文档filepath = [pwd, '\测试.xlsx']; ...
2018-12-04 21:10:03 1917
原创 【Matlab学习手记】字符串分割
Matlab对字符串的分割,以 regexp 和 textscan 函数为例来说明。用 “=” 分割的结果是两部分,包含空格。文本内容:第529次采集 流量CH1 温度CH2 压差CH72016/7/22 9:54:50 4.3985 23.588 288.2499WholeText=importdata('test.txt');C1=textscan(WholeTe...
2018-11-29 14:29:05 2365
原创 【WPF学习手记】控件修饰Adorners
先看一下效果图:官方文档有介绍:https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/adorners-overviewxaml文件<Window x:Class="AdornerExample.MainWindow" xmlns="http://schemas.microsoft.c...
2018-11-25 21:54:16 809
原创 【Matlab学习手记】三维散点插值成曲面
问题:已知一系列三维的散点坐标,得到一个经过这些散点的曲面图。 实例 构造一个曲面分布,从曲面上取一些特征点,然后依据这些特征点进行二维插值,用到了griddata函数,提取的特征点越多,插值得到的曲面和原始曲面越接近。clear; clc;[X, Y, Z] = peaks(30);position = [13,26; 20,24...
2018-11-02 09:23:53 24966 2
原创 【Matlab学习手记】自定义Colormap
Colormap即色图,不同的颜色表征不同的数值,常用于绘制伪彩图。 目前新版本默认的colormap是parula,老版本默认的是jet。 本质上来说,colormap是一个N*3的数组,表征的是R、G、B值,比如: 另外,Matlab提供了色图编辑器从Figure的编辑→颜色图打开: 颜色条下方的滑块,可以单...
2018-10-25 09:49:36 9344
原创 【Matlab学习手记】特殊曲线绘图:颜色渐变、标记大小渐变
效果图参考代码clear; clc;x = 0 : 0.1 : 2*pi;y = sin(x);sizeMarker = linspace(1, 100, length(x)); % 比0大,值越大标记越大colorMarker = y; % 颜色渐变subplot(1,2,1)scatter(x, y, sizeMarker, colorMarker, 'o', ...
2018-10-19 16:03:09 15316
原创 【WPF学习手记】利用fo-dicom读取DICOM文件
利用开源库 fo-dicom 读取 DICOM 文件基本操作。读取DICOM信息 原始数据经过窗宽、窗位校正后显示成图。private void Button_Click1(object sender, RoutedEventArgs e){ ImageManager.SetImplementation(WPFImageManager.Instance); va...
2018-10-19 15:30:50 9915 2
原创 【Matlab学习手记】椭圆拟合
熟悉 Matlab 函数 nlinfit 使用。椭圆拟合方程:结果图:程序:clear; clc;F = @(p, x) p(1) * x(:, 1) .^ 2 + p(2) * x(:, 1) .* x(:, 2) + p(3) * x(:, 2) .^2 + p(4);% 离散数据点x = [6.3246, 6.9379, 7.0875, 7.9242, 7.8...
2018-10-16 17:00:45 14657 8
原创 【Matlab学习手记】良好的编程习惯
1.程序开头加复位命令clear;% 清空工作区变量,释放内存;clc; % 清空命令行窗口;close all; % 关闭所有的figure窗口,一般不用;2. 命名方式变量名:能够反映其含义或用途,一般小写字母开头,采用大小写混用的驼峰结构或下划线分割结构,比如:isOpened、file_number;m和n打头代表matrix和number,如mKernal、nRow...
2018-10-11 22:08:52 1543
原创 【Matlab学习手记】了解Matlab界面布局
下图是我的Matlab软件布局,包含四部分:当前文件夹(Current Folder)、工作区(Workspace)、编辑器(Editor)和命令行窗口(Command Window)。 当前文件夹是用户编写的m文件默认的保存路径,程序运行也会优先执行当前文件夹里的m文件,如果当前文件夹或者系统路径里没有用户待执行的m文件,则给出如下提示,点击更改文件夹即可重新定位到m文件所...
2018-10-11 22:06:11 6080
Computer Vision:Models, Learning, and Inference
2018-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人