当前位置:文档之家› 图像作业-细胞个数matlab

图像作业-细胞个数matlab

图像作业-细胞个数matlab
图像作业-细胞个数matlab

K均值聚类、分水岭算法计算图片中红白细胞个数

K均值聚类

1、任取[0,255]中K个值作为第一次分类中心

2、把图像(gray)中的每一个点与K个中心值进行比较,按差值分成K组,求出新的K个中心点

3、重复上一步骤 直到前后两次算出的中心点值相同

4、按最后得到的中心点把图像依据点到中心点的距离分成K类。

程序

function [cen,copy]=Kmeans(I,k) % K均值聚类函数

mm=max(max(I)); % mm为I的最大灰度值

copy=I;

cen=(1:k)*mm/k; % 求出首次中心值

cen1=zeros(1,k);

d=ones(1,k)./255;

[m,n]=size(I);

J=zeros(m,n);

while(1)

for i=1:m

for j=1:n

c=abs(I(i,j)-cen); % c为I中元素与各中心点的差值数组

cc=find(min(c)==c); % cc为距中心值最近的元素下标

J(i,j)=cc;

end

end

% 求新的中心点

for r=1:k

h=0;

[J1,J2]=find(J==r);

p=length(J1);

for s=1:p

h=h+I(J1(s),J2(s));

copy(J1(s),J2(s))=cen(r); % 按中心值 把原图像灰度分为K类end

cen1(r)=h/p;

end

if (abs(cen1-cen)<=d)

break;

else cen=cen1;

end

end

K均值聚类、分水岭算法总程序

I=imread('blood.jpg'); % 读入处理图像

R=I(:,:,1); % 分离R分量

G=I(:,:,2);

B=I(:,:,3);

clc; % 清屏

close all; % 关闭图像窗口

figure, % 开辟图像显示窗口

subplot(2,3,1),imshow(R),title('R分量');

subplot(2,3,2),imshow(G),title('G分量');

subplot(2,3,3),imshow(B),title('B分量');

K=rgb2hsv(I); % RGB图像转换成HSV图像

H=K(:,:,1);

S=K(:,:,2);

V=K(:,:,3);

subplot(2,3,4),imshow(H),title('H分量');

subplot(2,3,5),imshow(S),title('S分量');

subplot(2,3,6),imshow(V),title('V分量');

%****************************** 白细胞计数******************************% % 分割出只有白细胞的二值图像

[cenwhite,copywhite]=Kmeans(H,3); % K均值聚类函数调用

cenwhite; % 查看聚类后的中心值

figure,

subplot(1,3,1),imshow(copywhite,[ ]),title('H分量K均值聚类结果');

A=copywhite;

[m,n]=size(A); % 把聚类后图像二值化

for i=1:m

for j=1:n

if A(i,j)==cenwhite(2)

A(i,j)=1;

else A(i,j)=0;

end

end

end

subplot(1,3,2),imshow(A,[ ]),title('白细胞二值化结果');

C1=imdilate(A,ones(5)); % 对二值化图像腐蚀膨胀处理达到去噪效果

C2=imerode(C1,ones(11));

C=imdilate(C2,ones(6));

subplot(1,3,3),imshow(C,[ ]),title('白细胞去噪结果');

% 下面两种方法中任选一种作为白细胞计数输出

% 方法一 用4连通分割图像计算白细胞个数%

L4=bwlabel(C,4); % 4连通运算

figure,subplot(1,2,1),imshow(L4,[ ]),title('法一 白细胞4连通结果');

Numwhite=max(max(L4)); % 计算4连通后图像中的最大值 即为白细胞个数Numwhite; % Numwhite为4连通计数结果 显示结果

% 方法二 用分水岭算法分割图像计算白细胞个数%

E=bwdist(~C);

E=-E;

E(~C)=-Inf;

L0=watershed(E);

rgb=label2rgb(L0,'jet');

subplot(1,2,2),imshow(rgb,[ ]),title('法二 白细胞分水岭结果');

NumWhite=max(max(L0))-1;

NumWhite; % NumWhite为分水岭算法计数结果 显示结果

%****************************** 红细胞计数******************************% % 分割出只有红细胞的二值图像 并对其做必需处理

I1(:,:,1)=double(I(:,:,1)).*C; % 把二值图像还原为彩色图像

I1(:,:,2)=double(I(:,:,2)).*C;

I1(:,:,3)=double(I(:,:,3)).*C;

figure,subplot(1,2,1),imshow(uint8(I1)),title('白细胞');

J=double(I)-double(I1); % 原图减去白细胞图得红细胞彩图

subplot(1,2,2),imshow(uint8(J)),title('红细胞');

J=rgb2hsv(J); % 红细胞图转换成HSV图

HH=J(:,:,1);

SS=J(:,:,2); % 提取S分量

VV=J(:,:,3);

subplot(1,3,1),imshow(HH),title('红细胞图H分量');

subplot(1,3,2),imshow(SS),title('红细胞图S分量');

subplot(1,3,3),imshow(VV),title('红细胞图V分量');

[cenred,copyred]=Kmeans(SS,2); % 对S分量图均值聚类

cenred; % 查看聚类后的中心值

figure,subplot(2,2,1),imshow(copyred,[ ]),title('S分量K均值聚类结果');

H=copyred;

[m,n]=size(H); % 把聚类后图像二值化

for i=1:m

for j=1:n

if H(i,j)==cenred(2)

H(i,j)=1;

else H(i,j)=0;

end

end

end

subplot(2,2,2),imshow(H,[ ]),title('红细胞二值化结果');

G=imfill(H,'holes'); % 红细胞图填充孔洞

subplot(2,2,3),imshow(G,[ ]),title('红细胞填洞结果');

C1=imerode(G,ones(9)); % 开运算去除噪声

G=imdilate(C1,ones(9));

subplot(2,2,4),imshow(G,[ ]),title('红细胞去噪结果');

% 方法一 通过判断面积大小计算红细胞个数%

[J,num]=bwlabel(G,8); % 8连通运算 保存区域个数num

figure,subplot(1,2,1),imshow(J,[ ]),title('红细胞8连通结果');

sum=0; % 定义sum为总面积变量

numred1=0; % 定义numred1为红细胞个数变量

for i=1:num

[J1,J2]=find(J==i); % 找出J中值为i的像素坐标分别存入J1,J2中

area(i)=length(J1); % area(i)为第i个红细胞的面积

sum=sum+area(i); % 面积累加

end

ave=sum/num; % 求红细胞的平均面积ave

for i=1:num % 通过面积比较 判断个数的增加值

if 0.5*ave

numred1=numred1+1; % 如果细胞区域的面积在0.5 1.5倍之间 视为一个细胞

end

if 1.5*ave

numred1=numred1+2; % 如果细胞区域的面积在1.5 2.5倍之间 视为两个细胞

end

if 2.5*ave

numred1=numred1+3; % 如果细胞区域的面积在2.5 3.5倍之间 视为三个细胞 end end

numred1; % 查看面积法得到的红细胞个数numred1

% 方法二 用分水岭算法计算红细胞的个数 % D=bwdist(~G); D=-D;

D(~G)=-Inf; L=watershed(D); rgb=label2rgb(L,'jet');

subplot(1,2,2),imshow(rgb,[ ]),title('红细胞分水岭算法结果'); numred2=max(max(L))-1;

numred2; % 查看分水岭算法得到的红细胞个数numred2

% 为缩小误差 把两种方法得出的红细胞个数的平均值作为红细胞的最终个数 %

NumRed=floor((numred1+numred2)/2); % floor()为向上取整。相关函数有ceil()向上取整,round()四舍五入。

NumRed; % 查看最终得到的红细胞个数NumRed 程序运行结果

R 分量G 分量B 分量

H 分量S 分量V 分量

H分量K均值聚类结果白细胞二值化结果白细胞去噪结果

法一 白细胞4连通结果法二 白细胞分水岭结果

红细胞图H分量红细胞图S分量红细胞图V分量

S分量K均值聚类结果红细胞二值化结果

红细胞填洞结果红细胞去噪结果

红细胞8连通结果红细胞分水岭算法结果

白细胞红细胞

基于Matlab的彩色图像分割

用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors color = I_rgb; color(rgb_label ~= k) = 0; segmented_images{k} = color;

春MATLAB仿真期末大作业

MATLAB仿真 期末大作业 姓名:班级:学号:指导教师:

2012春期末大作业 题目:设单位负反馈控制系统前向通道传递函数由)()(21s G s G 和串联,其中: ) 1(1)()(21++==s A s G s K s G A 表示自己学号最后一位数(可以是零),K 为开环增益。要求: (1)设K=1时,建立控制系统模型,并绘制阶跃响应曲线(用红色虚线,并标注坐标和标题);求取时域性能指标,包括上升时间、超调量、调节时间、峰值时间; (2)在第(1)问中,如果是在命令窗口绘制阶跃响应曲线,用in1或者from workspace 模块将命令窗口的阶跃响应数据导入Simulink 模型窗口,用示波器显示阶跃响应曲线;如果是在Simulink 模型窗口绘制阶跃响应曲线,用out1或者to workspace 模块将Simulink 模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线。 (3)用编程法或者rltool 法设计串联超前校正网络,要求系统在单位斜坡输入信号作用时,速度误差系数小于等于0.1rad ,开环系统截止频率s rad c /4.4''≥ω,相角裕度大于等于45度,幅值裕度大于等于10dB 。

仿真结果及分析: (1)、(2)、将Simulink模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线 通过在Matlab中输入命令: >> plot(tout,yout,'r*-') >> title('阶跃响应曲线') 即可得出系统阶跃响应曲线,如下: 求取该控制系统的常用性能指标:超调量、上升时间、调节时间、峰值时间的程序如下: G=zpk([],[0,-1],5)。 S=feedback(G,1)。

基于MATLAB的图像分割方法及应用

安徽财经大学 (《图像处理》课程论文) 题目:图像分割算法研究——基于分水岭分割法的彩色图像分割学院:管理科学与工程学院 专业:电子信息工程 姓名:万多荃 学号:20123712 电话: 任课教师:许晓丽 论文成绩: 2015年10月

目录 摘要 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。

本文根据图像分割原理及人眼视觉的基本理论,研究图像的彩色模型及图像分割的常用方法,比较各方法的特点,并选择合适的方法对图像进行分割。本文采用MATLAB软件对图像进行彩色坐标变换及阈值分割,计算简单,具有较高的运行效率,分割的结果是使图像更符合人眼的视觉特性,获得比较好的效果。 关键字:图像处理;图像分割;人类视觉;MATLAB 1.前言 1.1图像分割技术 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。 图像数据的模糊和噪声的干扰是分割问题的两大难题。到目前为止,还没有一个完美的图像分割方法,可以根据人的意愿精确地分割任何一种图像。现实图像中景物情况各种不同,具体问题需具体分析,按照实际情况选择得当的方法。分割成果的好坏或正确与否,到现在为止,尚无一个统一的评价和判断标准,分割的好坏务必从分割的效果和现实应用的场合来判断。然而,在人类研究图像的历史长河中,仍然积累了许多经典的图像分割方法。固然这些分割方法不可以适应全部种类的图像分割,可是这些方法却是图像分割方法进一步发展的根基。实际上,当代一些分割算法恰巧是从经典的图像分割方法中产生出来的。图像分割法大致可以分为三个种:边缘检测法,阈值分割法和基于区域的图像分割法。 2研究目的 视觉是人类最高级的感知器官,所以图像在人类感知中承担着非常重要的角色,这是毋庸置疑的。 本文的主要研究目的是对图像的分割方法进行研究,选择适合本论文的设计方法,然后通过对图像的分割,以达到人眼的最佳视觉效果。 本课题主要是通过对人眼的视觉系统研究,然后选择与人眼视觉系统密切相关的颜色模型进行颜色空间模型之间的相互转换,再对图像分割方法进行比较选择合适的分割方法,通过MATLAB平台实现彩色图像分割,最后对分割后的图像进行比较来获得到最佳的视觉效果。

电机学matlab仿真大作业报告

. 基于MATLAB的电机学计算机辅助分析与仿真 实验报告

一、实验内容及目的 1.1 单相变压器的效率和外特性曲线 1.1.1 实验内容 一台单相变压器,N S =2000kVA, kV kV U U N N 11/127/21=,50Hz ,变压器的参数 和损耗为008.0* ) 75(=C k o R ,0725.0*=k X ,kW P 470=,kW P C KN o 160)75(=。 (1)求此变压器带上额定负载、)(8.0cos 2滞后=?时的额定电压调整率和额定效率。 (2)分别求出当0.1,8.0,6.0,4.0,2.0cos 2=?时变压器的效率曲线,并确定最大效率和达到负载效率时的负载电流。 (3)分析不同性质的负载(),(8.0cos 0.1cos ),(8.0cos 222超前,滞后===???)对变压器输出特性的影响。 1.1.2 实验目的 (1)计算此变压器在已知负载下的额定电压调整率和额定效率 (2)了解变压器效率曲线的变化规律 (3)了解负载功率因数对效率曲线的影响 (4)了解变压器电压变化率的变化规律 (5)了解负载性质对电压变化率特性的影响 1.1.3 实验用到的基本知识和理论 (1)标幺值、效率区间、空载损耗、短路损耗等概念 (2)效率和效率特性的知识 (3)电压调整率的相关知识 1.2串励直流电动机的运行特性 1.2.1实验内容 一台16kw 、220V 的串励直流电动机,串励绕组电阻为0.12Ω,电枢总电阻为0.2Ω。电动势常数为.电机的磁化曲线近似的为直线。其中为比例常数。假设电枢电流85A 时,磁路饱和(为比较不同饱和电流对应的效果,饱和电流可以自己改变)。

部分图像分割的方法(matlab)

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

程序二: clc; clear; cd 'D:\My Documents\MATLAB' time = now; I = imread('qr4.bmp'); figure(1),imshow(I),title('p1_1.bmp'); % show the picture I2 = rgb2gray(I); figure(2),imshow(I2),title('I2.bmp'); %?D?μ??2¨ J = medfilt2(I2); figure(3),imshow(J); imwrite(J,'J.bmp'); [M N] = size(J); J1 = J(1:M/2,1:fix(N/2)); J2 = J(1:M/2,fix(N/2)+1:N); J3 = J(M/2+1:M, 1:fix( N/2)); J4 = J(M/2+1:M, fix(N/2)+1:N); % figure(4), img = J1; T1 = test_gray2bw( img ); % figure(5), img = J2; T2 = test_gray2bw( img ); % figure(6), img = J3; T3 = test_gray2bw( img ); % figure(7), img = J4; T4 = test_gray2bw( img ); T = [T1,T2;T3,T4]; figure,imshow(T) % T1 = edge(T,'sobel'); % figure,imshow(T1); % BW = edge(T,'sobel'); % f igure,imshow(BW); function [bw_img] = test_gray2bw( img ) %大津法 [row_img col_img ] = size( img ) all_pix = row_img * col_img % get probability of each pixel(????). count_pix = zeros(1,256) % pro_pix = [] for i = 1 : 1 : row_img for j = 1 : 1 : col_img count_pix(1,img(i,j)+1) = count_pix(1,img(i,j)+1) + 1 %í3??′?êy end en d pro_pix = count_pix / all_pix % choose k value; max_kesi = -1 T = 0 for k = 1 : 1 : while( i <= k ) wa = wa + pro_pix(1,i+1) %?°k??i£?????????μ??ò?è???ê£????êoí ua = ua + i * pro_pix(1,i+1) i = i + 1 end

matlab 大作业

上海电力学院 通信原理Matlab仿真 实验报告 实验名称: 8QAM误码率仿真 试验日期: 2014年 6月3日 专业:通信工程 姓名:罗侃鸣 班级: 2011112班 学号: 20112272

一、实验要求 写MATLAB程序,对图示的信号星座图完成M=8的QAM通信系统Monte Carlo仿真,在不同SNRindB=0:15时,对N=10000(3比特)个符号进行仿真。画出该QAM系统的符号误码率。 二、实验原理 1 QAM调制原理 QAM(Quadrature Amplitude Modulation)正交幅度调制技术,是用两路独立的基带信号对两个相互正交的同频载波进行抑制载波双边带调幅,利用这种已调信号的频谱在同一带宽内的正交性,实现两路并行的数字信息的传输。该调制方式通常有8QAM,16QAM,64QAM。 QAM调制实际上就是幅度调制和相位调制的组合,相位+ 幅度状态定义了一个数字或数字的组合。QAM的优点是具有更大的符号率,从而可获得更高的系统效率。通常由符号率确定占用带宽。因此每个符号的比特(基本信息单位)越多,频带效率就越高。 调制时,将输入信息分成两部分:一部分进行幅度调制;另一部分进行相位调制。对于星型8QAM信号,每个码元由3个比特组成,可将它分成第一个比特和后两个个比特两部分。前者用于改变信号矢量的振幅,后者用于差分相位调制,通过格雷编码来改变当前码元信号矢量相位与前一码元信号矢量相位之间的相位差。 QAM是一种高效的线性调制方式,常用的是8QAM,16QAM,64QAM等。当随着M 的增大,相应的误码率增高,抗干扰性能下降。 2 QAM星座图 QAM调制技术对应的空间信号矢量端点分布图称为星座图。QAM的星座图呈现星状分

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

%计算图像的平均灰度值 for i=1:q; w(i)=sum(f(1:i)); end %计算出选择不同k的时候,A区域的概率 d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差[y,tp]=max(d);%求出最大方差对应的灰度级 th=tp+p; if thth) y1(i,j)=x1(i,j); else y1(i,j)=0; end end end %上面一段代码实现分割 % figure,imshow(y1); % title('灰度门限分割的图像');

matlab机电系统仿真大作业

一曲柄滑块机构运动学仿真 1、设计任务描述 通过分析求解曲柄滑块机构动力学方程,编写matlab程序并建立Simulink 模型,由已知的连杆长度和曲柄输入角速度或角加速度求解滑块位移与时间的关系,滑块速度和时间的关系,连杆转角和时间的关系以及滑块位移和滑块速度与加速度之间的关系,从而实现运动学仿真目的。 2、系统结构简图与矢量模型 下图所示是只有一个自由度的曲柄滑块机构,连杆与长度已知。 图2-1 曲柄滑块机构简图 设每一连杆(包括固定杆件)均由一位移矢量表示,下图给出了该机构各个杆件之间的矢量关系 图2-2 曲柄滑块机构的矢量环

3.匀角速度输入时系统仿真 3.1 系统动力学方程 系统为匀角速度输入的时候,其输入为输出为;。 (1) 曲柄滑块机构闭环位移矢量方程为: (2)曲柄滑块机构的位置方程 (3)曲柄滑块机构的运动学方程 通过对位置方程进行求导,可得 由于系统的输出是与,为了便于建立A*x=B形式的矩阵,使x=[], 将运动学方程两边进行整理,得到 将上述方程的v1与w3提取出来,即可建立运动学方程的矩阵形式 3.2 M函数编写与Simulink仿真模型建立 3.2.1 滑块速度与时间的变化情况以及滑块位移与时间的变化情况 仿真的基本思路:已知输入w2与,由运动学方程求出w3和v1,再通过积分,即可求出与r1。 (1)编写Matlab函数求解运动学方程 将该机构的运动学方程的矩阵形式用M函数compv(u)来表示。 设r2=15mm,r3=55mm,r1(0)=70mm,。 其中各个零时刻的初始值可以在Simulink模型的积分器初始值里设置

M函数如下: function[x]=compv(u) %u(1)=w2 %u(2)=sita2 %u(3)=sita3 r2=15; r3=55; a=[r3*sin(u(3)) 1;-r3*cos(u(3)) 0]; b=[-r2*u(1)*sin(u(2));r2*u(1)*cos(u(2))]; x=inv(a)*b; (2)建立Simulink模型 M函数创建完毕后,根据之前的运动学方程建立Simulink模型,如下图: 图3-1 Simulink模型 同时不要忘记设置r1初始值70,如下图: 图3-2 r1初始值设置

基于Matlab的彩色图像分割

3 Matlab编程实现 3.1 Matlab编程过程 用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。3.2 Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors

电机大作业(MATLAB仿真-电机特性曲线)

电机大作业 专业班级:电气XXXX 姓名:XXX 学号:XXX 指导老师:张威

一、研究课题(来源:教材习题 4-18 ) 1. 74 、R 2 0.416 、X 2 3.03 、R m 6. 2 X m 75 。电动机的机械损耗p 139W,额定负载时杂散损耗p 320W, 试求额定负载时的转差率、定子电流、定子功率因数、电磁转矩、输出转矩和效 率。 二、编程仿真 根据T 形等效电路: 3D - R Q 运用MATLAB 进行绘图。MATLAB 文本中,P N PN ,U N UN ,尺 R 1, X 1 X1 , R 2 R 2,X 2 X 2,R m Rm, X m Xm ,p pjixiesunh ao , p pzasansunhao 。定子电流I11,定子功率因数 Cosangle1,电磁转矩Te , 效率 Xiaolv 。 1.工作特性曲线绘制 MATLA 文本: R1=0.715;X 仁1.74;Rm=6.2;Xm=75;R2=0.416;X2=3.03;pjixiesu nhao=139; pzasa nsu nhao=320;p=2;m 仁 3; ns=1500;PN=17000;UN=380;fN=50; Z1=R1+j*X1; Zm=Rm+j*Xm; for i=1:2500 s=i/2500; nO=n s*(1-s); Z2=R2/s+j*X2; Z=Z1+Zm*Z2/(Zm+Z2); 有一台三相四极的笼形感应电动机, 参数为P N 17kW 、U N 380V (△联 Rm 结)、尺 0. 715 、X j lcr S

U1=UN; I1=U1/Z; l110=abs(l1); An gle 仁an gle(ll); Cosa ngle10=cos(A ngle1); P仁3*U1*l110*Cosa ngle10; l2=l1*Zm/(Zm+Z2); Pjixie=m1*(abs(I2))A2*(1-s)/s*R2; V=(1-s)*pi*fN; Te0=Pjixie/V; P20=Pjixie-pjixies un hao-pzasa nsun hao; Xiaolv0=P20/P1; P2(i)=P20; n (i)=n0; l11(i)=l110; Cosa ngle1(i)=Cosa ngle10; Te(i)=Te0; Xiaolv(i)=Xiaolv0; hold on; end figure(1) plot(P2, n); xlabel('P2[W]');ylabel(' n[rpm]'); figure(2) plot(P2,l11); xlabel('P2[W]');ylabel('l1[A]'); figure(3) plot(P2,Cosa nglel); xlabel('P2[W]');ylabel('go nglvyi nshu'); figure(4) plot(P2,Te); xlabel('P2[W]');ylabel('Te[Nm]'); figure(5) plot(P2,Xiaolv); xlabel('P2[W]');ylabel('xiaolv');

两个matlab实现最大熵法图像分割程序

%两个程序,亲测可用 clear all a=imread('moon.tif'); figure,imshow(a) count=imhist(a); [m,n]=size(a); N=m*n; L=256; count=count/N;%%每一个像素的分布概率 count for i=1:L if count(i)~=0 st=i-1; break; end end st for i=L:-1:1 if count(i)~=0 nd=i-1; break; end end nd f=count(st+1:nd+1); %f是每个灰度出现的概率 size(f) E=[]; for Th=st:nd-1 %%%设定初始分割阈值为Th av1=0; av2=0; Pth=sum(count(1:Th+1)); %%%第一类的平均相对熵为 for i=0:Th av1=av1-count(i+1)/Pth*log(count(i+1)/Pth+0.00001); end %%%第二类的平均相对熵为 for i=Th+1:L-1 av2=av2-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.00001); end E(Th-st+1)=av1+av2; end position=find(E==(max(E))); th=st+position-1

for i=1:m for j=1:n if a(i,j)>th a(i,j)=255; else a(i,j)=0; end end end figure,imshow(a); %%%%%%%%%%%%%%%%%%%%%2-d 最大熵法(递推方法) %%%%%%%%%%% clear all; clc; tic a=imread('trial2_2.tiff'); figure,imshow(a); a0=double(a); [m,n]=size(a); h=1; a1=zeros(m,n); % 计算平均领域灰度的一维灰度直方图 for i=1:m for j=1:n for k=-h:h for w=-h:h; p=i+k; q=j+w; if (p<=0)|( p>m) p=i; end if (q<=0)|(q>n) q=j; end a1(i,j)=a0(p,q)+a1(i,j); end end a2(i,j)=uint8(1/9*a1(i,j)); end

车牌图像分割matlab代码

图像分割matlab代码 作者:佚名发布时间:2010-1-1 阅读次数:498 字体大小: 【小】【中】【大】 % This is a program for extracting objects from an image. Written for vehicle number plate segmentation and extraction % Authors : Jeny Rajan, Chandrashekar P S % U can use attached test image for testing % input - give the image file name as input. eg :- car3.jpg clc; clear all; k=input('Enter the file name','s'); % input image; color image im=imread(k); im1=rgb2gray(im); im1=medfilt2(im1,[3 3]); %Median filtering the image to remove noise% BW = edge(im1,'sobel'); %finding edges [imx,imy]=size(BW); msk=[0 0 0 0 0; 0 1 1 1 0; 0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0;]; B=conv2(double(BW),double(msk)); %Smoothing image to reduce the number of connected components L = bwlabel(B,8);% Calculating connected components mx=max(max(L)) % There will be mx connected components.Here U can give a value between 1 and mx for L or in a loop you can extract all connected components % If you are using the attached car image, by giving 17,18,19,22,27,28 to L you can extract the number plate completely. [r,c] = find(L==17); rc = [r c]; [sx sy]=size(rc);

运动控制MATLAB仿真

大作业: 直流双闭环调速MATLAB仿真 运动控制技术课程名称: 名:姓电气学院院:学 自动化业:专 号:学 孟濬指导教师: 2012年6月2日

------------------------------------- -------------学浙大江 李超 一、Matlab仿真截图及模块功能描述 Matlab仿真截图如下,使用Matlab自带的直流电机模型: 模块功能描述: ⑴电机模块(Discrete DC_Machine):模拟直流电机 ⑵负载转矩给定(Load Torque):为直流电机添加负载转矩 ⑶Demux:将向量信号分离出输出信号 ⑷转速给定(Speed Reference):给定转速 ⑸转速PI调节(Speed Controller):转速PI调节器,对输入给定信号与实际信号

的差值进行比例和积分运算,得到的输出值作为电流给定信号。改变比例和积分运算系数可以得到不同的PI控制效果。 ⑹电流采样环节(1/z):对电流进行采样,并保持一个采样周期 ⑺电流滞环调节(Current Controller):规定一个滞环宽度,将电流采样值与给定值进行对比,若:采样值>给定值+0.5*滞环宽度,则输出0; 若:采样值<给定值—0.5*滞环宽度,则输出1; 若:给定值—0.5*滞环宽度<采样值<给定值+0.5*滞环宽度,则输出不变 输出值作为移相电压输入晶闸管斩波器控制晶闸管触发角 :根据输入电压改变晶闸管触发角,从而改变电机端电压。GTO⑻晶闸管斩波.⑼续流二极管D1:在晶闸管关断时为电机续流。 ⑽电压传感器Vd:测量电机端电压 ⑾示波器scope:观察电压、电流、转速波形 系统功能概括如下:直流电源通过带GTO的斩波器对直流电机进行供电,输出量电枢电流ia和转速wm通过电流环和转速环对GTO的通断进行控制,从而达到对整个电机较为精确的控制。 下面对各个部分的功能加以详细说明: (1)直流电机 双击电动机模块,察看其参数:

基于MATLAB的图像分割算法研究毕业设计

基于MA TLAB的图像分割算法研究 基于MATLAB的图像分割算法研究 摘要 本文从原理和应用效果上对经典的图像分割方法如边缘检测、阈值分割技术和区域增长等进行了分析。对梯度算法中的Roberts算子、Sobel算子、Prewitt算子、拉普拉斯(Laplacian)算子、LoG(Laplacian-Gauss)算子、坎尼(Canny)算子的分割步骤、分割方式、分割准则相互比较可以看出根据坎尼(Canny)边缘算子的3个准则得出的边缘检测结果最满意。而阈值分割技术的关键在于阈值的确定,只有阈值确定好了才能有效的划分物体与背景,但这种方法只对于那些灰度分布明显,背景与物体差别大的图像的分割效果才明显。区域增长的基本思想是将具有相似性质的像素集合起来构成新区域。与此同时本文还分析了图像分割技术研究的方向。 关键词:图像处理图像分割 Abstract This article analyses the application effect to the classics image segmentation method like the edge examination, territory value division technology, and the region growth and so on.For comparing the Roberts operator, Sobel operator, Prewitt operator, the operator of Laplacian and the operator of LoG(Laplacian-Gauss),Canny operator in gradient algorithm,the step, the way and the standard of the image segmentation,we can find out the three standard of Canny edge operator the edge detection result of reaching most satisfy. And the key point of threshold segmentation lie in fixing the threshold value, it is good to have only threshold value to determine it then can be effective to divide object and background,but this kind of method is good to those gray scales,the big difference image effect between the background and obiect. The basic idea of area is to form the new region from similar nature.And also, this paper analyses the research direction of image segmentation technology at the same time. Key words: image processing image segmentation operator

华科matlab大作业

MATLAB语言、控制系统分析与设计 大作业 升降压斩波电路MATLAB仿真 专业:电气工程及其自动化 班级: 设计者: 学号: 评分: 华中科技大学电气与电子工程学院 2016 年1月

评分栏

目录 一、引言 (4) 二、电路设计与仿真 (4) 三、仿真结果及分析 (7) 四、深入讨论 (10) 五、总结 (10) 六、参考资料 (11)

升降压斩波电路MATLAB 仿真 一.引言 Buck/Boost 变换器是输出电压可低于或高于输入电压的一种单管直流变换器,其主电路与Buck 或Boost 变换器所用元器件相同,也有开关管、二极管、电感和电容构成。与Buck 和Boost 电路不同的是,电感L 在中间,不在输出端也不在输入端,且输出电压极性与输入电压相反。开关管也采用PWM 控制方式。Buck/Boost 变换器也有电感电流连续喝断续两种工作方式,在此只讨论电感电流在连续状态下的工作模式。 二.电路设计与仿真 1、电路原理 当可控开关V 处于通态时,电源E 经V 向电感L 供电使其储存能量,此时电流为i1。同时,电容C 维持输出电压基本恒定并向负载R 供电。此后,使V 关断,电感L 中储存的能量向负载L 释放,电流为i2。负载电压极性为上正下负,与电源电压极性相反。 稳态时,一个周期T 内电感L 两端电压UL 对时间积分为零,即 当V 处于通态期间,UL=E ;而当V 处于断态期间,UL=-Uo 。于是 所以,输出电压为 =?dt T L U off o on t U Et =E E t T t E t t U on on off on o α α -=-== 1

数字图像灰度阈值的图像分割技术matlab

1.课程设计的目的 (1)使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各 种因素对分割效果的影响 (2)使用Matlab软件进行图像的分割 (3)能够进行自行评价各主要算子在无噪声条件下和噪声条件下的分割 性能 (4)能够掌握分割条件(阈值等)的选择 (5)完成规定图像的处理并要求正确评价处理结果,能够从理论上做出合 理的解释 2.课程设计的要求 (1)能对图像文件(bmp,jpg,tiff,gif)进行打开,保存,退出等功能操作 (2)包含功能模块:图像的边缘检测(使用不同梯度算子和拉普拉斯算子)(3)封闭轮廓边界 (4)区域分割算法:阈值分割,区域生长等

3.前言 3.1图像阈值分割技术基本原理 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准]5[。 在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些部分称为目标或前景(其他部分称为背景),他们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将他们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成格局特性的区域并提取出感兴趣目标的技术和过程。这里特性可以是象素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区域。现有的图像分割算法有:阈值分割、边缘检测和区域提取法。本文着重研究基于阈值法的图像分割技术。 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的

基于MATLAB的图像阈值分割技术

基于MATLAB 的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB 的分析。通过双峰法,迭代法以及OUTS 法三种算法来实现图像阈值分割,并且就这三种算法做了一定的分析和比较,在加椒盐的图片上同时进行三种实验,做出比较,最终得出实践结论。 关键词:图像分割 MATLAB 阈值分割 算法 引言:图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准,图像阈值分割即是其中的一种方法。 阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。 1、阈值分割思想和原理 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T 进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的 设图像为f(x,y),其灰度集围是[0,L],在0和L 之间选择一个合适的灰度阈值T ,则图像分割方法可由下式描述: 这样得到的g(x,y)是一幅二值图像。 (一)原理研究 图像阈值分割的方法有很多,在这里就其中三种方法进行研究,双峰法,迭代法,以及OUTS 法。 方法一:双峰法 方法原理: T y x f T y x f y x g ≥<),(),(10){,(

MATLAB大作业

安阳工学院 专业课课程大作业 课程名称(中文) MATLAB编程应用成绩 姓名黄红伟 班级通信工程 学号 201002030060 日期 2012年12月23日

数字基带传输系统的仿真实现 [摘要]:MATLAB 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等 , 信号处理是MATLAB 重要应用的领域之一。数字通信系统有两种主要的通信模式:数字频带传输通信系统,数字基带传输通信系统。数字基带传输系统指不经载波调制而直接传输数字基带信号的系统,常用于传输距离不太远的情况下。本次大作业通过分析数字基带信号传输的特性,运用数值仿真的方法,对数字基带传输系统作了模拟。 [关键词]:MATLAB;数字基带传输系统 1.背景介绍 20世纪60年代出现了数字传输技术,它采用了数字信号来传递信息,从此通信进入了数字化时代。目前,通信网已基本实现数字化,在我国公众通信网中传输的信号主要是数字信号。数字通信技术的应用越来越广泛,例如数字移动通信、数字卫星通信、数字电视广播、数字光纤通信、数字微波通信、数字视频通信、多媒体通信等等。数字通信系统主要的两种通信模式:数字频带传输通信系统,数字基带传输通信系统。数字基带信号指未经调制的数字信号,它所占据的频谱是从零频或很低频率开始的。数字基带传输系统指不经载波调制而直接传输数字基带信号的系统,常用于传输距离不太远的情况下。 研究数字基带传输系统的原因:实际中,基带传输不如频带传输应用广泛,但对基带传输的研究仍有非常重要的意义。这是因为:第一,数字基带系统在近程数据通信系统中广泛采用;第二,数字基带系统的许多问题也是频带传输系统必须考虑的问题;第三,随着数字通信技术的发展,基带传输这种方式也有迅速发展的趋势,它不仅用于低速数据传输,而且还用于高速数据传输;第四,在理论上,任何一个线性调制的频带传输系统,总是可以有一个等效的基带载波调制系统所替代。因此,很有必要对基带传输系统进行综合系统的分析。 2.仿真理论基础 MA TLAB工具有很强的仿真能力可以仿真NR码、NRZ码、AMI码、PAM码等各种编码及分析其功率谱。同时可以仿真通信系统的应用。这里先简单介绍下仿真的理论基础。 2.1.时域抽样和频域抽样 若信号函数s(t)为定义在时间区间(-∞,+∞)上的连续函数,按区间[-T/2,T/2]截短为ST(t),再对ST(t)按时间间隔?t均匀取样,取样点数:N(t)=T/?t;仿真时用这个样值函数来表示S(t)。如果信号的最高频率为fH,那么必须有fH 〈〈0.5/?t,设为Bs,Bs=0.5/?t 称为仿真系统的系统带宽。 若信号s(t)的频谱S(f)为定义在频率区间(-∞,+∞)上的连续函数,按区间[-Bs,Bs]截断S(f),然后?f均匀取样。N(t)=2 Bs /?f=N;?f=1/T如果仿真程序设定的频域采样间隔是?f,那么就不能仿真截断时间1/?f的信号。2.2.频域分析函数t2f的功能是作傅立叶变换格式:X=t2f(x)函数f2t的功能是作傅立叶反变换格式:x=t2f(X)其中x是时域信号x(t)的截短抽样取得的取样值矢量。X是傅立叶X(f)的取样值矢量。 2.2.取样判决和误码率的测量 对于基带系统的研究,误码率是一个非常重要的概念,也是评价系统好坏的重要参数。在用matlab仿真系统中,在模拟实际的条件下,达到理想的误码率是我们的目标。

相关主题
文本预览
相关文档 最新文档