Image block processing using MATLAB

王林
Release: 2024-01-20 09:03:11
forward
1460 people have browsed it

Image block processing using MATLAB

Use MATLAB to process images into blocks

Let me first explain an error: 64*64 image blocks (each block is 4*4) should be 256 blocks, not 16 blocks.

The following is the program

Suppose A is a 64*64 image matrix

B=mat2cell(A,4*ones(1,16),4*ones(1,16));

B=reshape(cat(3,B{:}),16,[]);%B is the matrix you want, 16 rows and 256 columns

%The following is the description

%The approximate relationship is as follows, assuming A=

� A17 … A241

� A18 … A242

%∶ ∶ ∶

�6 A19 … A256

% (Each Ai here is a 4*4 matrix block)

%Then B=

� B2 B3 … B256

%Each Bi is a 16*1 column vector corresponding to Ai

%

%That is, assuming Ai=

� a5 a9 a13

� a6 a10 a14

� a7 a11 a15

� a8 a12 a16

%

%Then Bi=

%:

�6

How to divide a matrix into several matrices with equal dimensions in MATLAB

How to divide a matrix into several matrices with equal dimensions in MATLAB:

Use the reshape function: Enter: doc reshape in the command window.

MATLAB Introduction:

MATLAB is a commercial mathematics software produced by the American MathWorks company. It is an advanced technical computing language and interactive environment used for algorithm development, data visualization, data analysis and numerical calculations. It mainly includes MATLAB and Simulink.

MATLAB is a combination of the two words matrix&laboratory, which means matrix factory (matrix laboratory). It is a high-tech computing environment released by the American mathworks company mainly for scientific computing, visualization and interactive programming. It integrates many powerful functions such as numerical analysis, matrix calculations, scientific data visualization, and modeling and simulation of nonlinear dynamic systems in an easy-to-use window environment, providing scientific research, engineering design, and many scientific fields that must carry out effective numerical calculations. The field provides a comprehensive solution and largely breaks away from the editing mode of traditional non-interactive programming languages ​​(such as C and Fortran), representing the advanced level of today's international scientific computing software.

How matlab finds an invertible block matrix from a matrix

% Assume that your original matrix exists in the variable in

a=nchoosek(1:20,16);% generates 20 different combinations of 16, there will be 4845 kinds, and returns a 4845x16 matrix

num=size(a,1);%num=4845

choose=true(num,1);

for ii=1:num

temp=in(a(ii,:),:);% takes the combination of row ii to form the temp square matrix

d=det(temp);%calculate determinant

if d==0 %If the truncation error is included in the calculation, you can use the condition abs(d)

choose(ii)=false; % marks the combination whose determinant is 0

end

end

chooseout=a(choose,:);%chooseout is a matrix of nx16, n is the number of matrices that meet the conditions

% Available out=in(chooseout(n,:),:) to obtain the nth matrix that meets the conditions

The above is the detailed content of Image block processing using MATLAB. For more information, please follow other related articles on the PHP Chinese website!

source:docexcel.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template