当前位置:网站首页>[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 :
边栏推荐
- Understand chisel language thoroughly 08. Chisel Foundation (V) -- wire, REG and IO, and how to understand chisel generation hardware
- Animation and transition effects
- Product identification of intelligent retail cabinet based on paddlex
- Programmer anxiety
- Mask wearing detection based on yolov1
- 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
- 自主工业软件的创新与发展
- Unittest框架中引入TestFixture
- 硬件基础知识-二极管基础
- Understanding and difference between viewbinding and databinding
猜你喜欢
1200. Minimum absolute difference
2022 hoisting machinery command examination simulation 100 questions simulation examination platform operation
Redis - how to install redis and configuration (how to quickly install redis on ubuntu18.04 and centos7.6 Linux systems)
Unity shader learning (3) try to draw a circle
ASP. Net core introduction I
吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行
How to choose a technology stack for web applications in 2022
30: Chapter 3: develop Passport Service: 13: develop [change / improve user information, interface]; (use * * * Bo class to accept parameters, and use parameter verification)
自主工业软件的创新与发展
德明利深交所上市:市值31亿 为李虎与田华夫妻档
随机推荐
Flet tutorial 03 basic introduction to filledbutton (tutorial includes source code) (tutorial includes source code)
Fs7867s is a voltage detection chip used for power supply voltage monitoring of digital system
1200. 最小绝对差
[C question set] of VII
2022 hoisting machinery command examination simulation 100 questions simulation examination platform operation
Haproxy high availability solution
学习项目是自己找的,成长机会是自己创造的
Understand chisel language thoroughly 11. Chisel project construction, operation and test (III) -- scalatest of chisel test
Unittest中的TestSuite和TestRunner
Huahao Zhongtian rushes to the scientific and Technological Innovation Board: the annual loss is 280million, and it is proposed to raise 1.5 billion. Beida pharmaceutical is a shareholder
担心“断气” 德国正修改《能源安全法》
Summary of recent days (non-technical article)
JVM memory layout detailed, illustrated, well written!
[antd] how to set antd in form There is input in item Get input when gourp Value of each input of gourp
Yingshi Ruida rushes to the scientific and Technological Innovation Board: the annual revenue is 450million and the proposed fund-raising is 979million
Code hoof collection of wonderful secret place
基于PaddleX的智能零售柜商品识别
2022年起重机械指挥考试模拟100题模拟考试平台操作
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
Node の MongoDB安装