Matlab图像二值化程序

合集下载

MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)

MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)

MATLAB:图像⼆值化、互补图(反运算)
(im2bw,imcomplement函数)
图像⼆值化、反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本⿊的区域变为⽩的区域,⽩的区域变为⿊的区域。

实现过程如下:
close all; %关闭当前所有图形窗⼝,清空⼯作空间变量,清除⼯作空间所有变量
clear all;
clc;
J=imread('rice.png');% 读取灰度图像,赋值给J
J1=im2bw(J);%将灰度图像转换成⼆值图像,赋值给J1
J2=imcomplement(J);%求灰度图像的补,即对图像进⾏求反运算,赋值给J2
J3=imcomplement(J1);%求⼆值图像的补,赋值给J3
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜⾊的设置
figure, %显⽰运算结果
subplot(131),imshow(J1) %显⽰灰度图像及其补图像
subplot(132),imshow(J2) %显⽰⼆值图像及其补图像
subplot(133),imshow(J3)
效果图如下:
J1是J3的补图,即J1⽩的区域变为J3⿊的部分,反之。

matlab图像各种代码

matlab图像各种代码

1,二值化和阈值处理%图像二值化(选取一个域值,(5) 将图像变为黑白图像)I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif'); bw=im2bw(I,0.5);%选取阈值为0.5subplot(1,3,1);imshow(I);title('原图');subplot(1,3,2);imshow(bw);title('显示二值图像');J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;subplot(1,3,3);imshow(I);title(' 图像二值化 ( 域值为150 ) ');2非线性变换%对数变换I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif');I=mat2gray(I);%对数变换不支持uint8类型数据,将一个矩阵转化为灰度图像的数据格式(double)J=log(I+1);subplot(1,2,1);Imshow(I);%显示图像title('原图');subplot(1,2,2);Imshow(J);title('对数变换后的图像')3,反色变换I1=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif'); figure,imshow(I);title('原始图像');I2=imcomplement(I1);figure,imshow(I2);title('反色后图像');4.灰度图像均衡化I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif');J=histeq(I);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);figure,subplot(1,2,1),imhist(I,64);subplot(1,2,2),imhist(J,64);一打开图片和灰阶化global imglobal xglobal yglobal zx=0.002;y=0.02;z=0.04;[filename,pathname]=...uigetfile();str=[pathname filename];im=imread(str);axes(handles.axes1);imshow(im);title();im = rgb2gray(im);axes(handles.axes2);imshow(im);title();二线性变换global im;global J;J=imadjust(im,[0.3,0.7],[]); axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(J);title();axes(handles.axes4);imhist(J);title();三分段线性变换global im;global H;H=double(im);[M,N]=size(H);%½øÐлҶȱ任for i=1:Mfor j=1:Nif H(i,j)<=30H(i,j)=H(i,j);elseif im(i,j)<=150H(i,j)=(200-30)/(150-30)*(H(i,j)-30)+30;elseH(i,j)=(255-200)/(255-150)*(H(i,j)-150)+200;endendend%±ä»»ºóµÄ½á¹ûaxes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(uint8(H));title();axes(handles.axes4);imhist(uint8(H));title();四非线性变换global im;global J;global H;J=double (im) ;H=(log(J+1))/10;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(H);title();axes(handles.axes4);imhist(H);title();五生成灰度直方图global im;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();六直方图均衡化global im;global J;J=histeq(im);axes(handles.axes1);imshow(im);title();axes(handles.axes2);imshow(J);title();axes(handles.axes3);imhist(im);title();axes(handles.axes4);imhist(J);title一打开图片和灰阶化global imglobal xglobal yglobal zx=0.002;y=0.02;z=0.04;[filename,pathname]=...uigetfile();str=[pathname filename]; im=imread(str);axes(handles.axes1);imshow(im);title();im = rgb2gray(im);axes(handles.axes2);imshow(im);title();二线性变换global im;global J;J=imadjust(im,[0.3,0.7],[]); axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(J);title();axes(handles.axes4);imhist(J);title();三分段线性变换global im;global H;H=double(im);[M,N]=size(H);%½øÐлҶȱ任for i=1:Mfor j=1:Nif H(i,j)<=30H(i,j)=H(i,j);elseif im(i,j)<=150H(i,j)=(200-30)/(150-30)*(H(i,j)-30)+30;elseH(i,j)=(255-200)/(255-150)*(H(i,j)-150)+200;endendend%±ä»»ºóµÄ½á¹ûaxes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(uint8(H));title();axes(handles.axes4);imhist(uint8(H));title();四非线性变换global im;global J;global H;J=double (im) ;H=(log(J+1))/10;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(H);title();axes(handles.axes4);imhist(H);title();五生成灰度直方图global im;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();六直方图均衡化global im;global J;J=histeq(im);axes(handles.axes1);imshow(im);title();axes(handles.axes2);imshow(J);title();axes(handles.axes3);imhist(im);title();axes(handles.axes4);imhist(J);title平滑处理用3*3屏蔽窗口的8近邻均值进行滤波for(int j=1;j<height-1;j++){for(int i=1;i<wide-1;i++){averg=0;averg=(int)((p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i]+p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)]+p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)]+p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8); //求周围8近邻均值if(abs(averg-p_temp[j*wide+i])>127.5)p_temp[j*wide+i]=averg;}}利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理I=imread('aaa.jpg');imshow(I);J1=imnoise(I,'salt & pepper'); % 叠加椒盐噪声figure,imshow(J1);f=double(J1); % 数据类型转换,MATLAB不支持图像的无符号整型的计算g=fft2(f); % 傅立叶变换g=fftshift(g); % 转换数据矩阵[M,N]=size(g);nn=2; % 二阶巴特沃斯(Butterworth)低通滤波器d0=50;m=fix(M/2); n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数result(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));figure,imshow(J3); % 显示滤波处理后的图像归一化OTSU算法代码:I=imread(' E:\360Apps\tupian.bmp');th=graythresh(I);J=im2bw(I,th);imshow(I);subplot(122)imshow(J);Bernsen算法代码:clc;clear allclose allI=imread('****');[m,n] = size(I);I_gray=double(I);T=zeros(m,n);M=3;N=3;for i=M+1:m-Mfor j=N+1:n-Nmax=1;min=255;for k=i-M:i+Mfor l=j-N:j+Nif I_gray(k,l)>maxmax=I_gray(k,l);endif I_gray(k,l)<minmin=I_gray(k,l);endendendT(i,j)=(max+min)/2;endendI_bw=zeros(m,n);for j=1:nif I_gray(i,j)>T(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endendendsubplot(121),imshow(I);subplot(122),imshow(I_bw);改进的Bernsen算法代码:clc;clear allclose allI=imread('****');I_gray=double(I);[m,n] = size(I);a=0.3;A=0;T1=0;S=0;for i=1:mfor j=1:nA=A+I_gray(i,j) ;endendA=A*0.9;while(S<A)T1=T1+1;for i=1:mfor j=1:nif(I_gray(i,j)==T1)S=S+I_gray(i,j);endendendendT2=zeros(m,n);T3=zeros(m,n);M=3;N=3;for i=M+1:m-Mfor j=N+1:n-Nmax=1;min=255;for k=i-M:i+Mfor l=j-N:j+Nif I_gray(k,l)>maxmax=I_gray(k,l);endif I_gray(k,l)<minmin=I_gray(k,l);endendendT2(i,j)=(max+min)/2;T3(i,j)=max-min;endendT4=medfilt2(T2,[M,N]);T5=(T1+T4)/2;I_bw=zeros(m,n);for i=1:mfor j=1:nif I_gray(i,j)>(1+a)*T1I_bw(i,j)=255;endif I_gray(i,j)<(1-a)*T1I_bw(i,j)=0;endif (1-a)*T1<=I_gray(i,j)<=(1-a)*T1 if T3(i,j)>a*T1if I_gray(i,j)>=T4(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endelse if I_gray(i,j)>=T5(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endendendendendsubplot(121),imshow(I);subplot(122),imshow(I_bw);。

MATLAB中的图像识别与模式识别技巧

MATLAB中的图像识别与模式识别技巧

MATLAB中的图像识别与模式识别技巧引言:MATLAB是一种功能强大的计算机软件,被广泛应用于科学、工程、计算机视觉等领域。

其中,图像识别与模式识别是MATLAB常用的功能之一。

本文将介绍一些MATLAB中的图像识别与模式识别技巧,帮助读者更好地利用这些功能解决实际问题。

一、图像预处理在进行图像识别与模式识别之前,通常需要对图像进行预处理以提高识别的准确性和效率。

MATLAB提供了丰富的图像预处理函数,例如灰度化、二值化、平滑滤波等。

其中,灰度化函数im2gray可以将RGB图像转换为灰度图像,便于后续处理。

二值化函数im2bw可以将灰度图像转换为二值图像,更好地提取图像特征。

平滑滤波函数imfilter可以消除图像中的噪声,使得后续处理更加准确。

二、特征提取在进行图像识别与模式识别时,通常需要从图像中提取有用的特征,以便进行模式匹配和分类。

MATLAB提供了多种特征提取方法,例如灰度共生矩阵(GLCM)、局部二值模式(LBP)等。

灰度共生矩阵可以反映图像中不同像素灰度级之间的关系,用于描述纹理特征。

局部二值模式可以描述图像的纹理和形状特征。

通过使用这些特征提取方法,可以大幅度提高图像识别的准确性。

三、模式匹配与分类一旦提取了图像特征,就可以进行模式匹配和分类任务。

MATLAB提供了多种模式匹配和分类方法,例如支持向量机(SVM)、K近邻算法(KNN)等。

支持向量机是一种常用的分类算法,它可以通过找到一个最优超平面来分割不同类别的样本。

K近邻算法是一种简单而有效的分类算法,它通过计算待分类样本与已知样本的距离来确定其所属类别。

通过使用这些模式匹配和分类方法,可以实现高效的图像识别与模式识别。

四、深度学习应用近年来,深度学习在图像识别与模式识别领域取得了显著的成果。

MATLAB提供了深度学习工具箱,方便用户进行深度学习模型的设计和训练。

通过使用深度学习,可以自动从大量图像中提取抽象的特征,极大地提高了图像识别和模式识别的精度和效率。

二值化图像轮廓跟踪计算质心周长面积matlab

二值化图像轮廓跟踪计算质心周长面积matlab

二值化图像轮廓跟踪计算质心周长面积matlab在MATLAB中进行二值图像轮廓跟踪计算质心、周长和面积,可以使用以下步骤:1. 读取二值图像```matlabbinaryImage = imread('binary_image.png');```2. 使用bwboundaries函数获取轮廓```matlabboundaries = bwboundaries(binaryImage);```3. 计算每个轮廓的质心、周长和面积```matlabcentroids = {};perimeters = [];areas = [];for k = 1:length(boundaries)boundary = boundaries{k};% 计算质心坐标centroid = mean(boundary);centroids{k} = centroid;% 计算周长perimeter = sum(sqrt(sum(diff(boundary).^2, 2)));perimeters(k) = perimeter;% 计算面积area = polyarea(boundary(:, 2), boundary(:, 1));areas(k) = area;end```4. 可选:绘制轮廓和质心```matlabfigure;imshow(binaryImage);hold on;for k = 1:length(boundaries)boundary = boundaries{k};% 绘制轮廓plot(boundary(:, 2), boundary(:, 1), 'r', 'LineWidth', 2);% 绘制质心centroid = centroids{k};plot(centroid(2), centroid(1), 'bo', 'MarkerSize', 10, 'LineWidth', 2);endhold off;```请注意,上述代码仅适用于处理单个物体的轮廓。

图像分析MATLAB实现的图像的基本操作1灰度化、二值化,图像的加、减、乘、除运算,图像的与、或、非

图像分析MATLAB实现的图像的基本操作1灰度化、二值化,图像的加、减、乘、除运算,图像的与、或、非

大学生作业科目:数字图像分析与理解学号:姓名:时间:通过matlab对图像的一些基本操作如下:定义move函数代码:function J = move( I,a,b )%UNTITLED 此处显示有关此函数的摘要% 此处显示详细说明%a,b为平移量,I为原图像,J为平移后图像[M,N,G]=size(I);I=im2double(I);J=ones(M,N,G);for i=1:Mfor j=1:Nif((i+a)>=1&&(i+a)<=M&&(j+b)>=1&&(j+b)<=N) %判断平移后行列是否超过范围J(i+a,j+b,:)=I(i,j,:);endendend主函数代码:A=imread('happyC.jpg');B=imread('happyI.jpg');C=imread('happyP.jpg');imshow(A);A_gray=rgb2gray(A);A_bw=im2bw(A);B_bw=im2bw(B);C_bw=rgb2gray(C);figure,imshow(A_gray);figure,imshow(A_bw)addP=imadd(A,B);subP=imsubtract(A,B);mulP=immultiply(A,B);divP=imdivide(A,B);andP=A_bw&B_bw;orP=A_bw|B_bw;noP=~B_bw;R=2;% 变化后图像[row,col,color] = size(C); % 获得图像的行列数及色板数row = round(row*R); % 新图像行col = round(col*R); % 新图像列% 新图像初始化% 使用class获得原图像的数据类型,使得新图像数据类型与原图像保持一致img_new = zeros(row,col,color,class(C));% 对新图像的行、列、色板赋值for i = 1:rowfor j = 1:colfor n = 1:colorx = round(i/R);y = round(j/R);if x == 0x = x+1;endif y ==0y = y+1;endu = i/R-floor(i/R); %求取水平方向上的权重v = j/R-floor(j/R); %求取垂直方向上的权重% 此处需要对图像边缘进行例外处理% 本例对图像右边缘及下边缘用最近邻插值计算if i >= row-R || j >= col-Rimg_new(i,j,n) = C(x,y,n);elseimg_new(i,j,n) =u*v*C(x,y,n)+(1-u)*v*C(x+1,y,n)+u*(1-v)*C(x,y+1,n)+(1-u)*(1-v)*C(x+1,y+ 1,n);endendendendfigure,imshow(B);figure;subplot(2,2,1);imshow(addP);title('加法');subplot(2,2,2);imshow(subP);title('减法');subplot(2,2,3);imshow(mulP);title('乘法');subplot(2,2,4);imshow(divP);title('除法');C_mov=move(C,50,50);C_res=imresize(C,2,'bilinear');C_rot=imrotate(C,45,'loose');C_mir1=flip(C,1);%原图像的水平镜像C_mir2=flip(C,2);%原图像的垂直镜像figure;subplot(1,3,1);imshow(andP);title('与运算'); subplot(1,3,2);imshow(orP);title('或运算');subplot(1,3,3);imshow(noP);title('非运算');figure;subplot(121);imshow(C);title('原图');subplot(122);imshow(C_mov);title('平移后'); figure;%subplot(121);imshow(C);title('原图');%subplot(122);figure;imshow(C_res);title('放大后');figure;subplot(121);imshow(C);title('原图');subplot(122);imshow(C_rot);title('旋转后'); figure;subplot(131);imshow(C);title('原图');subplot(132);imshow(C_mir1);title('水平镜像后'); subplot(133);imshow(C_mir2);title('垂直镜像后'); figure;%subplot(121);imshow(C);title('原图');%subplot(122);figure;imshow(img_new);title('插值后');基本操作图像如下:。

matlab灰度处理二值化处理

matlab灰度处理二值化处理

Matlab在图像处理领域有着广泛的应用,其中灰度处理和二值化处理是常见的图像处理方法之一。

本文将详细介绍Matlab中的灰度处理和二值化处理的原理和实现方法。

一、灰度处理1. 灰度图像的概念灰度图像是指图像中每个像素的灰度值介于0-255之间的图像。

在灰度图像中,0代表黑色,255代表白色,中间的灰度值代表了不同程度的灰色。

2. 灰度处理的原理灰度处理是将彩色图像转换为灰度图像的过程。

在Matlab中,可以通过以下公式实现灰度处理:灰度值 = 0.299 * R + 0.587 * G + 0.114 * B其中,R、G、B分别代表彩色图像中的红色、绿色和蓝色分量。

通过对每个像素的RGB分量进行加权求和,可以得到对应的灰度值。

3. 灰度处理的实现在Matlab中,可以使用`rgb2gray`函数实现灰度处理。

具体的代码如下:```matlab读取彩色图像rgbImage = imread('example.jpg');灰度处理grayImage = rgb2gray(rgbImage);显示灰度图像imshow(grayImage);```二、二值化处理1. 二值化图像的概念二值化图像是指将灰度图像中的像素值转换为0或255的图像。

在二值化图像中,像素值为0代表黑色,像素值为255代表白色。

2. 二值化处理的原理二值化处理的目的是将灰度图像中的灰度值转换为0或255。

一般可以通过设置一个阈值,将低于阈值的像素值设为0,将高于阈值的像素值设为255。

3. 二值化处理的实现在Matlab中,可以使用`im2bw`函数实现二值化处理。

具体的代码如下:```matlab读取灰度图像grayImage = imread('example_gray.jpg');设置阈值threshold = 128;二值化处理binaryImage = im2bw(grayImage, threshold/255);显示二值化图像imshow(binaryImage);```三、总结本文详细介绍了Matlab中灰度处理和二值化处理的原理和实现方法。

Matlab对图片的二值化处理

Matlab对图片的二值化处理

Matlab对图⽚的⼆值化处理 这⼏天做了⼀道题⽬,要求在 5000 张图⽚中找出 30 张与样例相同但经过放⼤或缩⼩,⾼亮或变暗的图⽚。

整体思路是把图⽚hash成⼀段指纹,这个指纹和图⽚的⼤⼩、格式、明暗均⽆关,只和图⽚的内容本⾝有关。

1.先把彩⾊图⽚转为灰度图 如果原本的⼀个像素点的rgb值为(r1,g1,b1),⼀个⽐较简易的⽅法转为灰度图, 就是 gray1=(r1*299+g1*587+b1*114+500)/1000 那么该像素点的rgb颜⾊变为(gray1,gray1,gray1)。

⽽我⽤的是 Matlab 中的函数 imgray = rgb2gray(imdata); 2.将灰度图转化为⿊⽩图 先计算出该图的平均灰度,⼀种⽐较简易的做法是把所有像素点的灰度求和平均。

然后对于每个像素点,如果⼩于平均灰度,则rgb值为(0,0,0),否则为(255,255,255)。

经过这⼀步,图⽚就变成⿊⽩的了。

我⽤的是 Matlab 中函数 lev = graythresh( imdata); 求平均灰度,再 bwimg = im2bw( imdata, lev);求⼆值图。

但这样的函数对于⼀些⾼亮或灰暗的图⽚的处理不是特别的好,会使整个图⽚呈现全⽩或全⿊的现象。

我对于这些图⽚的处理是⾃⼰设定 lev,根据需要设 lev 为 0~1 的值,⽽不是求图⽚的平均值。

(找到更好的⽅法再来更新)。

4 编码 将之前的⼆值图放⼤或缩⼩为 8*8 的⼀个矩阵 imdata = imresize(imdata, [8,8]); ⽩为 0,⿊为 1 整合成 1 个 64 位的⼆进制,转化为 16 进制则是这个图⽚的指纹了。

在这⾥,我并没有转换成 16 进制进⾏⽐较,⽽是直接对⼆进制串做的对⽐,完全相同的并不多,所以不同的字符在⼗个之内我都算成相似的,再进⾏进⼀步的⽐较。

Matlab三维二值化矩阵处理和可视化

Matlab三维二值化矩阵处理和可视化

Matlab三维⼆值化矩阵处理和可视化多孔介质数值模拟输⼊的数据⼀般是采⽤三维⼆值化矩阵,处理和可视化过程总结如下。

多孔介质存在较多锯齿边缘,采⽤图像膨胀、腐蚀处理或者滤波处理% 膨胀B=[0 1 01 1 10 1 0]; %处理矩阵A1=imdilate(node,B);%膨胀处理% 腐蚀se1=strel('disk',6);A2=imerode(node,se1);% 中值滤波A3 = medfilt3(node);Matlab绘制三维图load('./node100.mat')len =100;wid=100;hig=100;[x,y,z] = meshgrid(1:wid,1:len,1:hig);% sx=1:len;sy=1:wid;sz=1:hig;sx = [1,len];sy=[1,wid];sz=[1,hig];h=slice(x,y,z,node,sx,sy,sz);shading interp;hold on ;colormap (hot);hold off;%采⽤hot⾊彩hidden off;%透视效果三维矩阵node输出为Tecplot可读的node.plt⽂件file = './node.plt';fid = fopen(file,'w+');fprintf(fid,'VARIABLES=\"x\",\"y\",\"z\",\"node\"\n');fprintf(fid,'ZONE T=\"BOX\",I=%d,J=%d,K=%d,F=POINT\n',len,wid,hig);for i = 1:lenfor j=1:widfor k=1:higfprintf(fid,'%d %d %d %d\n',i,j,k,A(i,j,k));endendend。

matlab-光电图像处理实验(图像增强)

matlab-光电图像处理实验(图像增强)

光学图像处理实验报告学生姓名:班级:学号:指导教师:日期:一、实验室名称:二、实验项目名称:图像增强三、实验原理:图像增强处理是数字图像处理的一个重要分支。

很多由于场景条件的影响图像拍摄的视觉效果不佳,这就需要图像增强技术来改善人的视觉效果,增强图象中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

比如突出图像中目标物体的某些特点、从数字图像中提取目标物的特征参数等等,这些都有利于对图像中目标的识别、跟踪和理解。

图像增强处理主要内容是突出图像中感兴趣的部分,减弱或去除不需要的信息。

这样使有用信息得到加强,从而得到一种更加实用的图像或者转换成一种更适合人或机器进行分析处理的图像。

图像增强的应用领域也十分广阔并涉及各种类型的图像。

例如,在军事应用中,增强红外图像提取我方感兴趣的敌军目标;在医学应用中,增强X射线所拍摄的患者脑部、胸部图像确定病症的准确位置;在空间应用中,对用太空照相机传来的月球图片进行增强处理改善图像的质量;在农业应用中,增强遥感图像了解农作物的分布;在交通应用中,对大雾天气图像进行增强,加强车牌、路标等重要信息进行识别;在数码相机中,增强彩色图像可以减少光线不均、颜色失真等造成的图像退化现象。

图像增强可分成两大类:频率域法和空间域法。

前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。

采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。

具有代表性的空间域算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。

图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。

MATLAB图像处理工具箱的使用方法

MATLAB图像处理工具箱的使用方法

MATLAB图像处理工具箱的使用方法导言:MATLAB作为一种常用的数学软件,被广泛应用于科学研究和工程领域。

其中的图像处理工具箱(Image Processing Toolbox)提供了许多功能强大的工具,用于处理和分析图像数据。

本文将介绍一些常用的图像处理工具箱的使用方法,帮助读者更好地掌握这一工具箱的优势。

一、图像的读取和显示要使用MATLAB进行图像处理,首先需要将图像读入MATLAB环境中,并显示出来。

通过imread函数可以方便地读取图像文件,如下所示:img = imread('image.jpg');这将会将名为'image.jpg'的图像读入img变量中。

接下来,使用imshow函数可以将图像显示在MATLAB的图像窗口中:imshow(img);通过这种方式,我们可以直观地了解图像的内容和特征。

二、图像的灰度化和二值化在很多图像处理应用中,我们常常需要将图像转换为灰度图像或二值图像。

在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像:gray_img = rgb2gray(img);这将把彩色图像img转换为灰度图像gray_img。

接下来,使用im2bw函数可以将灰度图像转换为二值图像:binary_img = im2bw(gray_img);这将把灰度图像gray_img转换为二值图像binary_img。

通过灰度化和二值化的处理,我们可以更方便地进行后续的图像分析和处理。

三、图像的平滑处理图像中常常存在噪声,这会对后续的分析和处理造成一定的干扰。

为减少这种噪声的影响,可以对图像进行平滑处理。

在MATLAB中,有多种方法可以实现图像的平滑处理,其中较常用的是均值滤波和高斯滤波。

通过使用函数imgaussfilt和imfilter,可以分别实现高斯滤波和均值滤波:smooth_img = imgaussfilt(img);或者smooth_img = imfilter(img, fspecial('average', [3 3]));这些函数可以在图像中应用指定的滤波器来平滑图像,从而减少噪声的干扰。

matlab实验 图像的基本运算

matlab实验 图像的基本运算

实验四、图像的基本运算1(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.3,b=0.6,c=0.1,d=0.9 (2)设置非线性扩展函数的参数c=2(3)采用灰度倒置变换函数s=255-r进行图像变换(4)设置二值化图像的阈值,分别为level=0.4,level=0.7程序如下I=imread('C:\lena8.jpg');figure;subplot(2,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围subplot(2,3,2);imshow(J);title('线性扩展');I1=double(I); %将图像转换为double类型I2=I1/255; %归一化此图像C=2;K=C*log(1+I2); %求图像的对数变换subplot(2,3,3);imshow(K);title('非线性扩展');M=im2bw(I,0.5);M=~M;%M=255-I; %将此图像取反%Figuresubplot(2,3,4);imshow(M);title('灰度倒置');N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7subplot(2,3,5);imshow(N1);title('二值化阈值0.4');subplot(2,3,6);imshow(N2);title('二值化阈值0.7');2 选取两幅大小一样的灰度图像hough.bmp和rice.bmp,将两幅图像进行加法运算。

程序如下I=imread('C:\hough.bmp');%I=rgb2gray(I);J=imread('C:\rice.bmp');I=im2double(I); %将图像转换成double型J=im2double(J);K=I+0.3*J; %两幅图像相加subplot(1,3,1);imshow(I);title('物图');subplot(1,3,2);imshow(J);title('背景图');subplot(1,3,3);imshow(K);title('相加后的图');imwrite(K,'C:\lena1.jpg');3 选取一幅混合图像,如相加得到的图像lenal.jpg,将混合图像与背景图像做减法运算。

基于MATLAB的图像批量二值化处理并求取面积的方法

基于MATLAB的图像批量二值化处理并求取面积的方法

基于MAT‎L AB图像‎批量二值化‎处理并求取‎面积的方法‎由于个人需‎要,需要将图片‎进行二值化‎处理并求出‎相关部分面‎积占比,本人MAT‎LAB小小‎白,网络上的解‎决方式大多‎对文件名要‎求较高,无法批量的‎读取和另存‎,小小白结合‎大家的方法‎,终于搞定了‎自己想要的‎效果,程序可能不‎太健壮[捂脸],至少还是可‎以用的,分享给需要‎的童鞋,一起学习。

程序实现的‎功能:从文件夹【test1‎】批量读取图‎片(文件名任意‎),经过二值化‎处理、求出面积后‎,图片以文件‎名不变的形‎式存储至【test2‎】中,图片序号、名称、面积输出至‎【t est2‎】中test‎.xls中。

代码如下,多多指教!CODE:clear‎a ll;clc;file_‎p ath = 'C:\Users‎\LPZ\Deskt‎o p\test1‎\';% 图像文件夹‎路径,自行定义img_p‎ath_l‎ist = dir(strca‎t(file_‎p ath,'*.jpg'));%获取该文件‎夹中所有j‎p g格式的‎图像img_n‎um = lengt‎h(img_p‎ath_l‎ist);%获取图像总‎数量area=cell(img_n‎um,3); %定义一个“图片数”行,3列的元胞‎数组,用于存放“序号”、“图片名称”、“面积占比”for k = 1:img_n‎um %逐一读取图‎像image‎_name‎= img_p‎ath_l‎ist(k).name;% 图像名x = imrea‎d(strca‎t(file_‎p ath,image‎_name‎));[a,b,c]=size(x);if ~isgra‎y(x)x=rgb2g‎r ay(x); %转换为灰度‎图像endlevel‎=grayt‎h resh‎(x); %使用最大类‎间方差法确‎定最佳阈值‎xbw=im2bw‎(x,level‎); %再转换为二‎值图像xbw=medfi‎lt2(xbw); %中值滤波bw=xbw; %滤波后二值‎图像black‎=0; %求面积的变‎量fori=1:afor j=1:bif (bw(i,j)==0)black‎=black‎+1;endendendimwri‎t e(bw,['C:\Users‎\LPZ\Deskt‎o p\test2‎\',image‎_name‎]); %保存图片,~bw为矩阵‎取反,即反向P=black‎/(a*b); %黑色部分占‎面积百分比‎area{k,1}=k; %数组第一列‎area{k,2}=image‎_name‎;%数组第二列‎area{k,3}=P; %数组第三列‎enda1={'序号'}; %定义exc‎e l第一列‎表头b1={'图片名称'}; %定义exc‎e l第二列‎表头c1={'面积占比'}; %定义exc‎e l第三列‎表头xlswr‎i te('C:\Users‎\LPZ\Deskt‎o p\test2‎\test.xls',a1,'Sheet‎1','A1');xlswr‎i te('C:\Users‎\LPZ\Deskt‎o p\test2‎\test.xls',b1,'Sheet‎1','B1');xlswr‎i te('C:\Users‎\LPZ\Deskt‎o p\test2‎\test.xls',c1,'Sheet‎1','C1');xlswr‎ite('C:\Users‎\LPZ\Deskt‎o p\test2‎\test.xls',area,'Sheet‎1','A2'); %定义数字和‎字符在ex‎c el中的‎显示位置。

matlab图像各种代码

matlab图像各种代码

1,二值化和阈值处理%图像二值化(选取一个域值,(5) 将图像变为黑白图像)I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif'); bw=im2bw(I,0.5);%选取阈值为0.5subplot(1,3,1);imshow(I);title('原图');subplot(1,3,2);imshow(bw);title('显示二值图像');J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;subplot(1,3,3);imshow(I);title(' 图像二值化 ( 域值为150 ) ');2非线性变换%对数变换I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif');I=mat2gray(I);%对数变换不支持uint8类型数据,将一个矩阵转化为灰度图像的数据格式(double)J=log(I+1);subplot(1,2,1);Imshow(I);%显示图像title('原图');subplot(1,2,2);Imshow(J);title('对数变换后的图像')3,反色变换I1=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif'); figure,imshow(I);title('原始图像');I2=imcomplement(I1);figure,imshow(I2);title('反色后图像');4.灰度图像均衡化I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif');J=histeq(I);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);figure,subplot(1,2,1),imhist(I,64);subplot(1,2,2),imhist(J,64);一打开图片和灰阶化global imglobal xglobal yglobal zx=0.002;y=0.02;z=0.04;[filename,pathname]=...uigetfile();str=[pathname filename];im=imread(str);axes(handles.axes1);imshow(im);title();im = rgb2gray(im);axes(handles.axes2);imshow(im);title();二线性变换global im;global J;J=imadjust(im,[0.3,0.7],[]); axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(J);title();axes(handles.axes4);imhist(J);title();三分段线性变换global im;global H;H=double(im);[M,N]=size(H);%½øÐлҶȱ任for i=1:Mfor j=1:Nif H(i,j)<=30H(i,j)=H(i,j);elseif im(i,j)<=150H(i,j)=(200-30)/(150-30)*(H(i,j)-30)+30;elseH(i,j)=(255-200)/(255-150)*(H(i,j)-150)+200;endendend%±ä»»ºóµÄ½á¹ûaxes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(uint8(H));title();axes(handles.axes4);imhist(uint8(H));title();四非线性变换global im;global J;global H;J=double (im) ;H=(log(J+1))/10;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(H);title();axes(handles.axes4);imhist(H);title();五生成灰度直方图global im;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();六直方图均衡化global im;global J;J=histeq(im);axes(handles.axes1);imshow(im);title();axes(handles.axes2);imshow(J);title();axes(handles.axes3);imhist(im);title();axes(handles.axes4);imhist(J);title一打开图片和灰阶化global imglobal xglobal yglobal zx=0.002;y=0.02;z=0.04;[filename,pathname]=...uigetfile();str=[pathname filename]; im=imread(str);axes(handles.axes1);imshow(im);title();im = rgb2gray(im);axes(handles.axes2);imshow(im);title();二线性变换global im;global J;J=imadjust(im,[0.3,0.7],[]); axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(J);title();axes(handles.axes4);imhist(J);title();三分段线性变换global im;global H;H=double(im);[M,N]=size(H);%½øÐлҶȱ任for i=1:Mfor j=1:Nif H(i,j)<=30H(i,j)=H(i,j);elseif im(i,j)<=150H(i,j)=(200-30)/(150-30)*(H(i,j)-30)+30;elseH(i,j)=(255-200)/(255-150)*(H(i,j)-150)+200;endendend%±ä»»ºóµÄ½á¹ûaxes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(uint8(H));title();axes(handles.axes4);imhist(uint8(H));title();四非线性变换global im;global J;global H;J=double (im) ;H=(log(J+1))/10;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();axes(handles.axes3);imshow(H);title();axes(handles.axes4);imhist(H);title();五生成灰度直方图global im;axes(handles.axes1);imshow(im);title();axes(handles.axes2);imhist(im);title();六直方图均衡化global im;global J;J=histeq(im);axes(handles.axes1);imshow(im);title();axes(handles.axes2);imshow(J);title();axes(handles.axes3);imhist(im);title();axes(handles.axes4);imhist(J);title平滑处理用3*3屏蔽窗口的8近邻均值进行滤波for(int j=1;j<height-1;j++){for(int i=1;i<wide-1;i++){averg=0;averg=(int)((p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i]+p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)]+p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)]+p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8); //求周围8近邻均值if(abs(averg-p_temp[j*wide+i])>127.5)p_temp[j*wide+i]=averg;}}利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理I=imread('aaa.jpg');imshow(I);J1=imnoise(I,'salt & pepper'); % 叠加椒盐噪声figure,imshow(J1);f=double(J1); % 数据类型转换,MATLAB不支持图像的无符号整型的计算g=fft2(f); % 傅立叶变换g=fftshift(g); % 转换数据矩阵[M,N]=size(g);nn=2; % 二阶巴特沃斯(Butterworth)低通滤波器d0=50;m=fix(M/2); n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数result(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));figure,imshow(J3); % 显示滤波处理后的图像归一化OTSU算法代码:I=imread(' E:\360Apps\tupian.bmp');th=graythresh(I);J=im2bw(I,th);subplot(121)imshow(I);subplot(122)imshow(J);Bernsen算法代码:clc;clear allclose allI=imread('****');[m,n] = size(I);I_gray=double(I);T=zeros(m,n);M=3;N=3;for i=M+1:m-Mfor j=N+1:n-Nmax=1;min=255;for k=i-M:i+Mfor l=j-N:j+Nif I_gray(k,l)>maxmax=I_gray(k,l);endif I_gray(k,l)<minmin=I_gray(k,l);endendendT(i,j)=(max+min)/2;endendI_bw=zeros(m,n);for i=1:mfor j=1:nif I_gray(i,j)>T(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endendendsubplot(121),imshow(I);subplot(122),imshow(I_bw);改进的Bernsen算法代码:clc;clear allclose allI=imread('****');I_gray=double(I);[m,n] = size(I);a=0.3;A=0;T1=0;S=0;for i=1:mfor j=1:nA=A+I_gray(i,j) ;endendA=A*0.9;while(S<A)T1=T1+1;for i=1:mfor j=1:nif(I_gray(i,j)==T1)S=S+I_gray(i,j);endendendendT2=zeros(m,n);T3=zeros(m,n);M=3;N=3;for i=M+1:m-Mfor j=N+1:n-Nmax=1;min=255;for k=i-M:i+Mfor l=j-N:j+Nif I_gray(k,l)>maxmax=I_gray(k,l);endif I_gray(k,l)<minmin=I_gray(k,l);endendendT2(i,j)=(max+min)/2;T3(i,j)=max-min;endendT4=medfilt2(T2,[M,N]);T5=(T1+T4)/2;I_bw=zeros(m,n);for i=1:mfor j=1:nif I_gray(i,j)>(1+a)*T1I_bw(i,j)=255;endif I_gray(i,j)<(1-a)*T1I_bw(i,j)=0;endif (1-a)*T1<=I_gray(i,j)<=(1-a)*T1 if T3(i,j)>a*T1if I_gray(i,j)>=T4(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endelse if I_gray(i,j)>=T5(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endendendendendsubplot(121),imshow(I);subplot(122),imshow(I_bw);。

matlab二值化分割代码

matlab二值化分割代码

matlab二值化分割代码
以下是一个简单的 MATLAB 代码示例,用于对图像进行二值化分割:
matlab.
% 读取图像。

img = imread('your_image.jpg');
% 将图像转换为灰度图像。

gray_img = rgb2gray(img);
% 使用Otsu方法进行图像二值化。

level = graythresh(gray_img);
bw_img = imbinarize(gray_img,level);
% 显示原始图像和二值化图像。

subplot(1,2,1), imshow(gray_img), title('Original Image');
subplot(1,2,2), imshow(bw_img), title('Binary Image');
在这个示例中,首先使用 `imread` 函数读取图像,然后使用`rgb2gray` 函数将图像转换为灰度图像。

接下来,使用
`graythresh` 函数确定阈值,并使用 `imbinarize` 函数将灰度图像转换为二值化图像。

最后,使用 `subplot` 和 `imshow` 函数显示原始图像和二值化图像。

需要注意的是,这只是一个简单的二值化分割示例。

实际应用中可能需要根据具体的图像特征和要求进行参数调整和算法优化。

matlab阈值法程序

matlab阈值法程序

matlab阈值法程序MATLAB中的阈值法是一种常用的图像处理方法,用于图像分割和对象检测。

阈值法基于像素灰度值与预先设定的阈值进行比较,从而将图像分割成不同的区域。

以下是一个简单的MATLAB阈值法程序示例:matlab.% 读取图像。

I = imread('image.jpg');% 将图像转换为灰度图像。

I_gray = rgb2gray(I);% 使用Otsu方法自动计算阈值。

level = graythresh(I_gray);% 根据阈值进行图像分割。

BW = imbinarize(I_gray, level);% 显示原始图像和分割结果。

subplot(1,2,1), imshow(I_gray), title('原始灰度图像');subplot(1,2,2), imshow(BW), title('阈值分割结果');在这个示例中,首先通过`imread`函数读取了一张彩色图像,并使用`rgb2gray`函数将其转换为灰度图像。

然后使用`graythresh`函数自动计算图像的阈值,这里使用了Otsu方法。

最后,利用`imbinarize`函数根据计算得到的阈值对图像进行二值化处理,生成二值图像`BW`。

最后通过`subplot`和`imshow`函数显示了原始灰度图像和阈值分割结果。

需要注意的是,阈值法的具体实现方式会根据具体的图像特点和分割需求而有所不同,上述示例仅为其中一种简单的实现方式。

在实际应用中,可能需要根据具体情况调整阈值计算方法和分割结果的后处理步骤,以获得更好的分割效果。

matlab图像二值化

matlab图像二值化

阈值二值化图像程序Matlab 二值化图像clearclose allI=imread('Fig3.24.jpg');figure(1)imshow(I)J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;title(' 图像二值化( 域值为150 )');figure(2)imshow(I)clc;I=imread('Fig3.24.jpg');bw=im2bw(I,0.5);%选取阈值为0.5figure(3);imshow(bw) %显示二值图象Matlab中一种二值化图像的形态学操作程序在Matlab中将一幅图像阈值分割二值化非常简单,若需要通过阈值th2二值化保留一些大面积的、且有灰度值含有大于th1的点的前景区域,而不需要小面积的区域(th1大于th2),这时会遇到这样的问题:当阈值选为th2时会把一些小面积区域也保留下来;若把阈值增大到th1,小面积的区域没了,但是原来大面积的区域又会减小;若要直接去掉阈值th2二值化图像中面积小于某一值的的区域,需要计算每个区域的面积,计算量大,而且有的区域中并没有含有大于th1的点。

下面利用数学形态学的方法来解决上述问题。

这里主要是采用数学形态学中的腐蚀与膨胀操作,采用均值滤波、灰度图像高阈值二值化、种子点选择、灰度图像低阈值二值化和选择滤波相结合的方法,具体来说:腐蚀过程采用均值滤波和高阈值对第一细分图像二值化,滤掉面积较小的区域,得到较大的区域,然后选择每个区域的种子点;膨胀过程采用低阈值对第一细分图像二值化,保留含有种子点的区域,其它的均过滤掉。

经过腐蚀和膨胀操作后,得到所希望的结果,见下图。

程序如下:wmf10=imread('mwf1.bmp'); %读取图像wmf1=wmf10(:,:,1);%由于是灰度图像,三个页面相同,故只对第一页面数据操作figure(1);subplot(121);imagesc(wmf1);colormap(gray); %显示原图象h=fspecial('average',3);wmf1_filted=uint8(round(filter2(h,wmf1))); %均值滤波th1=0.94*max(max(wmf1)); %确定阈值th1wmf1th1=(wmf1_filted>th1); %按阈值th1二值化[wmf1th1_label numth1_label]=bwlabel(wmf1th1,8);rc=zeros(2,numth1_label); %选择种子点坐标for i=1:numth1_label[r c]=find(wmf1th1_label==i);rc(1,i)=r(2);rc(2,i)=c(2);endr=rc(1,:);c=rc(2,:);coe=1.4;th2=mean2(wmf1)+coe*std2(wmf1); %确定阈值th2wmf1th2=(wmf1>th2); %按阈值th2二值化wmf1th2_select=bwselect(wmf1th2,c,r,8); %保留含有种子点的前景区域subplot(122);imagesc(wmf1th2_select);colormap(gray);上述程序主要是采用了bwlabel和beselect函数,虽然没有直接使用Matlab的形态学操作的膨胀、腐蚀函数,但其实质过程和达到的效果是遵循形态学操作原理的,因而这也为形态学操作提供了其他的编程实现过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

z0=max(max(max(I))); % 求出图象中最大的灰度
z1=min(min(min(I))); % 最小的灰度
T=(z0+z1)/2; % T赋初值,为最大值和最小值的平均值
i2=bwperim(i1); % 图像细化过程
figure,imshow(i2)
I = imread('C:/Users/zhao4/Desktop/Kalibrierung/连续激光/name_L/bmp9.bmp');
figure,imshow(I)
[x,y]=size(I); % 求出图象大小
b=double(I);
allow=50; % 新旧阈值的允许接近程度
d=abs(T-TT);
count=0; % 记录几次循环
while(d>=allow) % 迭代最佳阈值分割算法
TT=(T0+T1)/2; %在阈值T下,迭代阈值的计算过程
d=abs(T-TT);
T=TT;
end
S0
i1=im2bw(I,T/255); % 图像在最佳阈值下二值化
figure,imshow(i1) TT=0; %TT赋初值
S0=0.0; n0=0.0; %为计算灰度大于阈值的元素的灰度总值、个数赋值
S1=0.0; n1=0.0; %为计算灰度小于阈值的元素的灰度总值、个数赋值
if I(i,j)<T,
S1=S1+b(i,j);
n1=n1+1;
end
end
end
T0=S0/n0;
T1=S1/n1;
count=count+1;
for i=1:x,
for j=1:y,
if I(i,j)>=T,
S0=S0+b(i,j);
n0=n0+1;
end
相关文档
最新文档