- 博客(16)
- 收藏
- 关注
原创 Matlab求向量的模——速度比较
Matlab求向量的模——6种方式方式A:利用norm()函数A=norm(vector);方式B:利用sum()函数和sqrt()函数B=sqrt(sum(vector.*vector));方式B1B1=sqrt(sum(vector.^2));方式C:利用向量点积和sqrt()函数C=sqrt(vector'*vector);方式D:只利用向量点积D=(vector'*vector)^2;方式E:利用for循环for j=1:10000 % 10,000维向量
2022-03-10 20:18:30
26554
2
原创 高斯金字塔及拉普拉斯金字塔的Matlab实现
1、高斯金字塔计算步骤(1)对第 iii 层图像进行高斯内核卷积;(2)将所有偶数行和列去除(下采样),得到第 i+1i+1i+1 层图像;(3)对原始图像不停迭代以上步骤就能得到整个金字塔。2、拉普拉斯金字塔计算步骤(1)将第 iii 层图像在每个方向扩大为原来的两倍(上采样),新增的行和列以0填充;(2)使用先前同样的内核(乘以4)与放大后的图像卷积,获得“新增像素”的近似值,得到第 i−1i-1i−1 层图像;(3)与高斯金字塔第同层次图像相减,就是图像在缩小和放大整个过程中减少的信.
2021-05-18 20:19:14
6075
3
原创 二维高斯卷积核的Matlab和OpenCV实现
1、二维高斯函数G(x,y)=12πσ2exp(−x2+y22σ2)G(x,y)=\frac{1}{2\pi {{\sigma }^{2}}}\exp \left( -\frac{{{x}^{2}}+{{y}^{2}}}{2{{\sigma }^{2}}} \right)G(x,y)=2πσ21exp(−2σ2x2+y2)2、坐标(以5×5卷积核为例)3、Matlab实现sigma1=2;k=5; % kernel大小pai=3.1415926;kernel=zeros(k);
2021-03-12 20:35:25
4586
1
原创 SUSAN角点检测算法,及其Matlab实现
1、SUSAN角点检测算法步骤(1)在图像上放置一个37个像素的圆形模板,模板在图像上滑动,依次比较模板内各个像素点的灰度与模板核的灰度,判断是否属于USAN区域。判别函数如下:其中,r⃗0{{\vec{r}}_{0}}r0.表示二维图像中核心点的位置,r⃗\vec{r}r表示模板中其他点的位置,I(r⃗0)I({{\vec{r}}_{0}})I(r0)表示图像在r⃗0{{\vec{r}}_{0}}r0处的像素值,I(r⃗)I(\vec{r})I(r)表示图像在r⃗\vec{r}r处的像素值,tt
2021-03-10 16:14:21
3633
1
原创 SUSAN边缘检测算法,及其Matlab和OpenCV实现
1、SUSAN边缘检测计算步骤(1)在图像上放置一个37个像素的圆形模板,模板在图像上滑动,依次比较模板内各个像素点的灰度与模板核的灰度,判断是否属于USAN区域。判别函数如下:其中,r⃗0{{\vec{r}}_{0}}r0.表示二维图像中核心点的位置,r⃗\vec{r}r表示模板中其他点的位置,I(r⃗0)I({{\vec{r}}_{0}})I(r0)表示图像在r⃗0{{\vec{r}}_{0}}r0处的像素值,I(r⃗)I(\vec{r})I(r)表示图像在r⃗\vec{r}r处的像素值,tt
2021-03-10 15:15:28
2502
原创 OpenCV单通道Mat矩阵元素访问方法,及其速度比较
1、OpenCV程序(环境:CPU i5-9500+VS2017+OpenCV4.5.0)方法1:利用“ Mat.at<存储类型>(行,列) ”访问Mat矩阵元素并赋值int main(){ Mat img = Mat::zeros(Size(10000, 10000), CV_64FC1); DWORD startTime = GetTickCount(); for (int i = 0; i < 10000; i++) { for (int j = 0; j <
2021-03-10 13:33:37
3350
1
原创 Harris角点检测,及其Matlab和OpenCV实现
1、Harris角点检测算法实现步骤(1)计算图像I(x,y)I(x,y)I(x,y)在XXX和YYY两个方向的梯度Ix,Iy{{I}_{x}},{{I}_{y}}Ix,Iy;Ix=∂I∂x=I⊗[−101]{{I}_{x}}=\frac{\partial I}{\partial x}=I\otimes \left[ \begin{matrix} -1 & 0 & 1 \\\end{matrix} \right]Ix=∂x∂I=I⊗[−101]Iy=∂I∂y=I⊗[−
2021-03-04 15:14:04
623
1
原创 图像梯度之Sobel算子,及其Matlab和OpenCV实现
1、Sobel算子实现步骤(1)需要用到计算x,yx,yx,y方向导数值的两个滤波核(2)分别与图像进行卷积(3)把得到的值卸载一起得到图像梯度向量梯度方向为:θ=tan−1(∂f∂x/∂f∂y )\theta ={{\tan }^{-1}}\left( {\frac{\partial f}{\partial x}}/{\frac{\partial f}{\partial y}}\; \right)θ=tan−1(∂x∂f/∂y∂f)梯度幅度为:∥∇f∥=(∂f∂x)2+(∂f∂y)
2021-03-02 16:48:55
7109
原创 用豪斯霍尔德(Householder)变换进行矩阵的QR分解,及其Matlab和OpenCV实现
1、豪斯霍尔德变换一般地,对给定的mmm维向量aaa,考虑分块 a=[a1a2]a=\left[ \begin{matrix} {{a}_{1}} \\ {{a}_{2}} \\\end{matrix} \right]a=[a1a2],其中a1{{a}_{1}}a1是(k−1)(k-1)(k−1)维向量,1≤k<m1\le k<m1≤k<m。如果豪斯霍尔德向量为v=[0a2]−αekv=\left[ \begin{matrix} 0 \\ {{a}
2021-01-20 21:59:49
8673
2
原创 用“部分”主元高斯消去法进行LU分解,及其Matlab和OpenCV实现
1、介绍部分选主元中“部分”的意思是我们仅仅在当前列中选择可用的主元。还有一种更完备的选主元方法是所谓的全主元法,它是在未被约化的子矩阵中的所有元素之中选一个最大的,并将它交换到对角元的位置。全主元法虽然在理论上是极为稳定的,但它和部分选主元法比,寻找主元的工作量大大增加,而由于部分选主元法的数值稳定性足以满足实际要求,所以在用高斯消去法求解线性方程组时普遍采用的是部分选主元消去法。2、伪代码%% Matlab 2018b——用部分主元高斯消去法进行LU分解:A=LUA=[1,2,2;4,4,2;
2021-01-19 16:40:02
2866
原创 用高斯消去法进行LU分解,及其Matlab和OpenCV实现
用高斯消去法进行LU分解及其Matlab和OpenCV实现伪代码%% Matlab 2018b——矩阵的LU分解:A=LUA=[1,2,2;4,4,2;4,6,4];[m,n]=size(A);M=zeros(m,n);for i=1:(n-1) if A(i,i)==0 break; else for j=(i+1):m M(j,i)=A(j,i)/A(i,i); end end for k=i:n
2021-01-19 09:04:55
725
原创 关于矩形窗函数DFT和FFT的笔记
一直想写这个程序,今日终于如尝所愿,非常开心!矩形窗函数的FT是个什么样子呢?1、先从理论上分析一下,如图所示(贼简单):我们在二维坐标系里只能画出信号的幅度谱 |F(w)| ,那么矩形窗的幅度谱是啥形状呢?(本科的时候快把Sa函数的图画烂了):这时,我想啊,如果是它的时移信号呢?根据FT的时移性质很容易得到:但是在画幅度谱时,是要对信号的FT求模滴!所以,幅度谱不会包含时移信息,而是时...
2018-10-28 17:03:19
33164
2
原创 MATLAB下fft(Fast Fourier Transform)函数的使用
MATLAB下fft(Fast Fourier Transform)函数的使用直到现在才意识到,DFT或FFT无论是在信号处理、还是在图像分析、又或是模式识别中的地位和重要性,以至于在大学竟然没有自己写过信号的FFT的程序,果然出来混迟早是要还的,大学欠下的债现在该还了。花了一天看DFT、FFT,去证明蝶形运算、快速算法,又花了一天去写程序,去验证Fourier的理论,去实现自己的想法。1、S...
2018-10-27 19:05:57
3988
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人