当前位置:网站首页>[matlab] summary of conv, filter, conv2, Filter2 and imfilter convolution functions
[matlab] summary of conv, filter, conv2, Filter2 and imfilter convolution functions
2022-07-04 14:10:00 【Nirvana;】
【Matlab】conv、filter、conv2、filter2 and imfilter Function summary
1. conv function
effect :
1. Calculate one-dimensional vector convolution
u = [1 1 1];
v = [1 1 0 0 0 1 1];
w = conv(u,v)
2. Calculate polynomial multiplication through convolution
u = [1 0 1];
v = [2 7];
w = conv(u,v)
2. filter function
effect : One dimensional digital filter
y = filter(b,a,x) Use the numerator and denominator coefficients b and a Defined rational transfer function For input data x Filtering .
// Moving average filter is a common method for smoothing noisy data .
t = linspace(-pi,pi,100);
rng default %initialize random number generator
x = sin(t) + 0.25*rand(size(t));
windowSize = 5;
b = (1/windowSize)*ones(1,windowSize);
a = 1;
y = filter(b,a,x);
plot(t,x)
hold on
plot(t,y)
legend('Input Data','Filtered Data')
3. conv2 function
effect : Two dimensional convolution
A = rand(3);
B = rand(4);
C = conv2(A,B)
conv2 function
1、 usage
C=conv2(A,B,shape); % Convolution filtering
A: The input image ,B: Convolution kernel
Assumed input image A The size is ma x na, Convolution kernel B The size is mb x nb, be
When shape=full when , Return all two-dimensional convolution results , Return C The size is (ma+mb-1)x(na+nb-1)
shape=same when , Return and A The central part of the convolution of the same size
shape=valid when , Do not consider boundary zero filling , That is, as long as there is a boundary complement of zero, those involved in the operation are rounded off , return C The size is (ma-mb+1)x(na-nb+1)
2、 Implementation steps
Assumed input image A The size is ma x na, The convolution kernel size is mb x nb, be MATLAB Of conv2 The function implementation process is as follows :
a、 Zero the input image , Before the first line and after the last line mb-1 That's ok , Before the first column and after the last column nb-1 Column ( Be careful conv2 Other boundary supplement options are not supported , The function always fills the input with zero ).
b、 About the center of convolution kernel , Rotating convolution kernel 180 degree .
c、 Sliding convolution kernel , The center of the convolution kernel is located in each element of the image matrix .
d、 Multiply the rotated convolution kernel by the corresponding matrix elements and then sum .
4. filter2 function
1、 usage
B = filter2(h,A,shape) ; % relevant (correlation) wave filtering
- A: The input image ,h: Related nuclear
- Assumed input image A The size is ma x na, Related nuclear h The size is mb x nb, be
When shape=full when , Return all two-dimensional convolution results , Return B The size is (ma+mb-1)x(na+nb-1) - shape=same when , Return and A The central part of the convolution of the same size
- shape=valid when , Do not consider boundary zero filling , That is, as long as there is a boundary complement of zero, those involved in the operation are rounded off , return B The size is (ma-mb+1)x(na-nb+1)
2、 Implementation steps
Assumed input image A The size is ma x na, Related nuclear h The size is mb x nb,MATLAB Of filter2 The implementation process of is as follows :
- a、 Zero the input image , Before the first line and after the last line mb-1 That's ok , Before the first column and after the last column nb-1 Column ( Be careful filter2 Other boundary supplement options are not supported , The function always fills the input with zero ).
- b、 Sliding correlation core , The center of the correlation kernel is located in each element of the image matrix .
- c、 Multiply the correlation kernel by the corresponding matrix elements and then sum
Be careful filter2 No nuclear 180° rotate , Directly correspond to multiply and add , This is related to filter2 Different .
5. imfilter function
1、 usage
B=imfilter(A,H,option1,option2,option3);
A: The input image ,H: Filter core
- option1: Boundary options , Optional : Add a fixed value X( Zero is filled by default ),symmetric,replicate,circular
- option2: Output image size options , Optional same( Default ),full
- option3: Decide to adopt and filter2 The same correlation filtering is still the same as conv2 The same convolution filter
2、 advantage :
Padding Options Fill options
1) Default complement 0
2)symmetric symmetry : The input array value outside the array boundary is obtained by specular reflection of the array along the array boundary
3)replicate Copy : The input array value outside the array boundary is assumed to be equal to the nearest array boundary value .
4)circular loop : The input array value outside the array boundary is calculated by implicitly assuming that the input array is periodic .
Output Size Output size
same: The output array is the same size as the input array . This is the default behavior when the output size option is not specified .
full: The output array is the result of complete filtering , Therefore, it is larger than the input array .
6. fspecial function
effect : Constructing convolution kernel , It can be done with filter2、conv2 and imfilter In combination with
h = fspecial(type)
h = fspecial('average',hsize)
h = fspecial('disk',radius)
h = fspecial('gaussian',hsize,sigma)
h = fspecial('laplacian',alpha)
h = fspecial('log',hsize,sigma)
h = fspecial('motion',len,theta)
h = fspecial('prewitt')
h = fspecial('sobel')
7. summary
filter2、conv2 Convert the input to double type , The output is double Of , Input is always filled with zero (zero padded), Other boundary supplement options are not supported .
imfilter: Do not convert input to double, Output is only of the same type as input , There are flexible boundary supplement options . It is recommended to use ~
8. Code demonstration
MATLAB Code :
clear;
close all;
clc;
%% fspecial function
value = 5;
h = fspecial('gaussian',[5 5],value);
srcImage = imread('lena.jpg');
srcImage = rgb2gray(srcImage);
srcImage_double = double(srcImage);
%% conv2 function Default :'full', Only zero can be filled
image_conv2 = conv2(srcImage_double,h);
%% filter2 function Default :'same', Only zero can be filled
image_filter2 = filter2(h,srcImage_double);
%% imfilter function Default :'same'
image_imfilter = imfilter(srcImage,h,'replicate');
%% Display images
figure(1);
subplot(221);imshow(srcImage,[]); title(' Original picture ');
subplot(222);imshow(image_conv2,[]); title('conv2');
subplot(223);imshow(image_filter2,[]); title('filter2');
subplot(224);imshow(image_imfilter,[]); title('imfilter');
design sketch :
边栏推荐
- 安装Mysql
- 免费、好用、强大的轻量级笔记软件评测:Drafts、Apple 备忘录、Flomo、Keep、FlowUs、Agenda、SideNote、Workflowy
- WS2818M是CPC8封装,是三通道LED驱动控制专用电路外置IC全彩双信号5V32灯可编程led灯带户外工程
- Understand chisel language thoroughly 07. Chisel Foundation (IV) - bundle and VEC
- Five "potential errors" in embedded programming
- Lick the dog until the last one has nothing (state machine)
- 程序员转方向
- 30:第三章:开发通行证服务:13:开发【更改/完善用户信息,接口】;(使用***BO类承接参数,并使用了参数校验)
- Understand chisel language thoroughly 08. Chisel Foundation (V) -- wire, REG and IO, and how to understand chisel generation hardware
- JVM 内存布局详解,图文并茂,写得太好了!
猜你喜欢
SCM polling program framework based on linked list management
基于YOLOv1的口罩佩戴检测
Use the default route as the route to the Internet
结合案例:Flink框架中的最底层API(ProcessFunction)用法
.Net之延迟队列
1200. Minimum absolute difference
[antd step pit] antd form cooperates with input Form The height occupied by item is incorrect
Openharmony application development how to create dayu200 previewer
吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行
Unity Shader学习(三)试着绘制一个圆
随机推荐
MySQL 45 lecture - learn the actual combat notes of MySQL in Geek time 45 lecture - 06 | global lock and table lock_ Why are there so many obstacles in adding a field to the table
美国土安全部部长警告移民“不要踏上危险的旅程”
硬件基础知识-二极管基础
Idea shortcut keys
美国土安全部长:国内暴力极端主义是目前美面临的最大恐怖主义威胁之一
IP lab monthly resumption · issue 5
基于PaddleX的智能零售柜商品识别
逆向调试入门-PE结构-资源表07/07
一次 Keepalived 高可用的事故,让我重学了一遍它
奇妙秘境 码蹄集
Understand chisel language thoroughly 08. Chisel Foundation (V) -- wire, REG and IO, and how to understand chisel generation hardware
Golang 使用 JSON unmarshal 数字到 interface{} 数字变成 float64 类型(转)
好博医疗冲刺科创板:年营收2.6亿 万永钢和沈智群为实控人
吃透Chisel语言.04.Chisel基础(一)——信号类型和常量
MongoDB常用28条查询语句(转)
DGraph: 大规模动态图数据集
SCM polling program framework based on linked list management
如何在 2022 年为 Web 应用程序选择技术堆栈
C language programming topic reference
Assertion of unittest framework