超过460,000+ 应用技术资源下载
docx

图像处理的matlab程序

  • 1星
  • 日期: 2018-11-09
  • 大小: 34.15KB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 图像处理Matlab

贡献几个图像处理的matlab程序,每一个都是单独的程序。主要有常见算子,边缘提取,骨架提取,直线检测等常用程序。

文档内容节选

贡献几个图像处理的matlab程序,每一个都是单独的程序前言:学习了图像处理这门课程,掌握了一些基本的图像处理方法及编程实现方法提供给大家参考,欢迎加QQ探讨问题以下程序均为笔者根据处理的原理原创作品,经运行检测可行若效果不能令方家满意,恳请赐教:cfvsfc163com直方图拉伸matlab实现:map1imreadpjpgrowcoldepsizemap1 行,列,深度值mapzerosrowcolmapuint8mappixsumrowcol 像素总数灰度化for i1row for j1col gray011map1ij1059map1ij203map1ij3 mapijgray endend灰度化完成输出灰度图figure1imshowmaptitle原始灰度图像统计各灰度值像素个数,存储在p中,计算概率,存储在pi中pzeros1256przeros1256sumprzeros1256 累积概率密度for k1256 pklengthfindmapk prkpkpixsumendsumpr1pr1for i1255 sumpri1su......

贡献几个图像处理的matlab程序,每一个都是单独的程序。前言:学习了图像处理这门课程,掌握了一些基本的图像处理方法及编程实现方法。提供给大家参考,欢迎加QQ探讨问题。以下程序均为笔者根据处理的原理原创作品,经运行检测可行。若效果不能令方家满意,恳请赐教:cfvsfc@163.com直方图拉伸matlab实现:map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);map=uint8(map);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col gray=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); map(i,j)=gray; endend%灰度化完成,输出灰度图figure(1)imshow(map)title('原始灰度图像')%统计各灰度值像素个数,存储在p中,计算概率,存储在pi中p=zeros(1,256);pr=zeros(1,256);sumpr=zeros(1,256); %累积概率密度for k=1:256; p(k)=length(find(map==k)); pr(k)=p(k)/pixsum;endsumpr(1)=pr(1);for i=1:255 sumpr(i+1)=sumpr(i)+pr(i);end%统计完成,概率计算完成,累积概率密度计算完成。%绘制灰度直方图figure(2)bar(0:255,pr,'g')axis([0 255 0 max(pr)])xlabel('灰度r')ylabel('概率pi')title('灰度直方图')%灰度直方图绘制完成%直方图拉伸。(g-0)/(f-min)=(255-0)/(max-min)A=max(max(map));B=min(min(map));for i=1:row for j=1:col %fig(i,j)=255/(A-B)*(map(i,j)-B); fig(i,j)=255*sumpr(map(i,j)+1);%直方图均衡化 endendfig=uint8(fig);for k=1:256; pfig(k)=length(find(fig==k)); pfigi(k)=pfig(k)/pixsum;endfigure(3)imshow(fig)title('直方图拉伸后灰度图像')figure(4)bar(0:255,pfigi,'g')axis([0 255 0 max(pfigi)])xlabel('灰度r')ylabel('概率pi')title('直方图拉伸化后灰度直方图')%计算拉伸前后方差mean_map=sum(sum(map))/(row*col);mean_fig=sum(sum(fig))/(row*col);var_map=sum(sum((map-mean_map).^2))/(row*col);var_fig=sum(sum((fig-mean_fig).^2))/(row*col);fprintf('拉伸前方差为:%d',var_map)fprintf('\n拉伸后方差为:%d\n',var_fig)Sobel算子matlab实现:map1=imread('BMW.jpg');[m,n,l]=size(map1); %行,列,深度值I=zeros(m,n);%I=uint8(I);%灰度化for i=1:m for j=1:n I(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(I,[])title('原始灰度图像')B = zeros(m,n);A = I; for i = 2:m-1 for j = 2:n-1 sx=-1*A(i-1,j-1)-2*A(i,j-1)-1*A(i+1,j-1)... +1*A(i-1,j+1)+2*A(i,j+1)+1*A(i+1,j+1); sy=-1*A(i-1,j-1)-2*A(i-1,j)-1*A(i-1,j+1)... +1*A(i+1,j-1)+2*A(i+1,j)+1*A(i+1,j+1); B(i,j) = max(sx,sy)/4; end end figure(2) imshow(B,[]) title('Sobel算法处理后')Scharr算子matlab实现:map1=imread('BMW.jpg');[m,n,l]=size(map1); %行,列,深度值I=zeros(m,n);%I=uint8(I);%灰度化for i=1:m for j=1:n I(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(I,[])title('原始灰度图像')B = zeros(m,n);A = I; for i = 2:m-1 for j = 2:n-1 sx=-3*A(i-1,j-1)-10*A(i,j-1)-3*A(i+1,j-1)... +3*A(i-1,j+1)+10*A(i,j+1)+3*A(i+1,j+1); sy=-3*A(i-1,j-1)-10*A(i-1,j)-3*A(i-1,j+1)... +3*A(i+1,j-1)+10*A(i+1,j)+3*A(i+1,j+1); B(i,j) = max(sx,sy)/15; end end figure(2) imshow(B,[]) title('Scharr算法处理后') Robert算子matlab实现:map1=imread('BMW.jpg');[m,n,l]=size(map1); %行,列,深度值I=zeros(m,n);%I=uint8(I);%灰度化for i=1:m for j=1:n I(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(I,[])title('原始灰度图像')B = zeros(m,n);A = I; for i=1:m-1; for j=1:n-1; B(i,j)=max(abs(A(i+1,j+1)-A(i,j)),abs(A(i+1,j)-A(i,j+1))); end end figure(4) imshow(B,[]) title('Robert算法处理后') 骨架提取和交叉点检测的matlab实现,用的是中轴法,细化法检测出来的是边缘,程序附后:map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(map,[])title('原始灰度图像')Y=zeros(row,col); %存储输出图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5根据通道二值化 for i=1:row for j=1:col if map1(i,j,2)>map1(i,j,1)&&map1(i,j,2)>map1(i,j,3) Y(i,j)=1; else Y(i,j)=0; end end endfigure(2)imshow(Y,[])title('二值化后图像')%以下为骨架提取程序temp=ones(row,col);N=0; %统计邻域内非零像素个数。T=0; %统计0-1变换次数for k=1:80 %大循环次数 for i=2:row-1 for j=2:col-1 a=[Y(i,j),Y(i,j-1),Y(i+1,j-1),Y(i+1,j),Y(i+1,j+1),Y(i,j+1),Y(i-1,j+1),Y(i-1,j),Y(i-1,j-1)];%邻域元素排序。中间为1,左边为2,逆时针分别为2---9 if a(1)==1 for m=1:8 if a(m)==1 N=N+1; end end for n=1:7 if a(n)==0&&a(n+1)==1 T=T+1; end end if a(8)==0&&a(1)==1 T=T+1; end end if (N>=2)&&(N<=6)&&(T==1)&&(a(2)*a(4)*a(6)==0)&&(a(4)*a(6)*a(8)==0) temp(i,j)=0; %标记要删除的点,标志为1 end N=0; T=0; end end %删除点 for i=1:row for j=1:col if temp(i,j)==0 Y(i,j)=0; end end end %第一步完成 for i=2:row-1 for j=2:col-1 a=[Y(i,j),Y(i,j-1),Y(i+1,j-1),Y(i+1,j),Y(i+1,j+1),Y(i,j+1),Y(i-1,j+1),Y(i-1,j),Y(i-1,j-1)];%邻域元素排序。中间为1,左边为2,逆时针分别为2---9 if a(1)==1 for m=2:9 if a(m)==1 N=N+1; end end for n=1:7 if a(n)==0&&a(n+1)==1 T=T+1; end end if a(8)==0 T=T+1; end end if (N>=2)&&(N<=6)&&(T==1)&&(a(2)*a(4)*a(8)==0)&&(a(2)*a(6)*a(8)==0) temp(i,j)==0; %标记要删除的点,标志为1 end N=0; T=0; end end %删除点 for i=1:row for j=1:col if temp(i,j)==0 Y(i,j)=0; end end end %第二步完成end%完成,输出figure(3)imshow(Y,[])title('提取的骨架')%以下为交叉点检测及标志,交叉点标注在灰度图中temp1=zeros(row,col);for i=2:row-1 for j=2:col-1 c=sum(sum(Y(i-1:i+1,j-1:j+1))); if c>=4 temp1(i,j)=1; end endendfor i=1:row for j=1:col if temp1(i,j)==1 map(i,j)=255; end endend%标注完成,显示灰度图figure(4)imshow(map,[])title('标注的交叉点')细化法(这个程序没有实现骨架提取,但仍提出供大家参考):map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(map,[])title('原始灰度图像')Y=zeros(row,col); %存储输出图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5根据通道二值化 for i=1:row for j=1:col if map1(i,j,2)>map1(i,j,1)&&map1(i,j,2)>map1(i,j,3) Y(i,j)=1; else Y(i,j)=0; end end endfigure(2)imshow(Y,[])title('二值化后图像')%骨架提取,以前的思路是进行若干次腐蚀,直到腐蚀为空集的前一次,但效果不好。%现在改成细化法。skel=zeros(row,col);%细化索引表tab=[0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,...1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,...0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,...1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,...1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,...0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,...0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,...1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,...0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,...1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,...1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,...1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,...1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,0,...1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0];B=[1 2 4;8 0 16;32 64 128];for i=2:row-1 for j=2:col-1 N=sum(sum(Y(i-1:i+1,j-1:j+1).*B)); skel(i,j)=tab(N+1); endend%腐蚀完成figure(3)imshow(skel,[])title('提取的图像骨架')LOG算法的matlab实现:map1=imread('BMW.jpg');[m,n,l]=size(map1); %行,列,深度值I=zeros(m,n);%I=uint8(I);%灰度化for i=1:m for j=1:n I(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(I,[])title('原始灰度图像')B = zeros(m,n);log=[-2 -4 -4 -4 -2;... -4 0 8 0 -4;... -4 8 24 8 -4;... -4 0 8 0 -4;... -2 -4 -4 -4 -2]; A = I; for i = 3:m-2 for j = 3:n-2 S=sum(sum(A(i-2:i+2,j-2:j+2).*log)); B(i,j) = S/56; end end figure(2) imshow(B,[]) title('LOG算法处理后') Kirsch算法的matlab实现:map1=imread('BMW.jpg');[m,n,dep]=size(map1); %行,列,深度值I=zeros(m,n);%I=uint8(I);%灰度化for i=1:m for j=1:n I(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(I,[])title('原始灰度图像')ticB = zeros(m,n); s = zeros(8,1); t = zeros(8,1); A = I; for i = 2:m-1 for j = 2:n-1 temp = sum(sum(A([i-1:i+1],[j-1:j+1])))-A(i,j); s(1) = A(i-1,j-1)+A(i-1,j)+A(i-1,j+1); s(2) = A(i-1,j)+A(i-1,j+1)+A(i,j+1); s(3) = A(i-1,j+1)+A(i,j+1)+A(i+1,j+1); s(4) = A(i,j+1)+A(i+1,j+1)+A(i+1,j); s(5) = A(i+1,j+1)+A(i+1,j)+A(i+1,j-1); s(6) = A(i+1,j)+A(i+1,j-1)+A(i,j-1); s(7) = A(i+1,j-1)+A(i,j-1)+A(i-1,j-1); s(8) = A(i,j-1)+A(i-1,j-1)+A(i-1,j); for k = 1:8 t(k) = temp-s(k); end B(i,j) = max(max(abs(5*s-3*t)))/15; end end figure(2) imshow(B,[]) title('Kirsch算法处理后') toc %统计一下程序运行时间,可以见证这个算法速度较慢均值、高斯和中值去噪的matlab实现:%实现去噪处理的三个小算法,并显示噪声图。map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);map=uint8(map);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(map)title('原始灰度图像')%@@@@@@@@@@@@@@@@@@@@@均值滤波,存储在fig1中fig1=zeros(row,col);for i=2:row-1 for j=2:col-1 fig1(i,j)=1/9*sum(sum(map(i-1:i+1,j-1:j+1))); % fig1(i,j)=1/9*(map(i-1,j-1)+map(i-1,j)+map(i-1,j+1)+map(i,j-1)+... % map(i,j)+map(i,j+1)+map(i+1,j-1)+map(i,j+1)+map(i+1,j+1)); endend%滤波完成,边缘处理,直接将原图边缘加入fig1(1,:)=map(1,:);fig1(row,:)=map(row,:);fig1(:,1)=map(:,1);fig1(:,col)=map(:,col);fig1=uint8(fig1);%边缘处理完成figure(2)subplot(2,1,1)imshow(fig1)title('均值去噪')fig11=map-fig1;subplot(2,1,2)imshow(fig11)title('噪声图像')%@@@@@@@@@@@@@@@@@@@@@加权滤波,存储在fig2中fig2=uint8(zeros(row,col));model=uint8([1 2 1;2 4 2;1 2 1]);for i=2:row-1 for j=2:col-1 fig2(i,j)=sum(sum(map(i-1:i+1,j-1:j+1).*model))/16; %fig2(i,j)=1/16*(map(i-1,j-1)+2*map(i-1,j)+map(i-1,j+1)+2*map(i,j-1)+... %4*map(i,j)+2*map(i,j+1)+map(i+1,j-1)+2*map(i,j+1)+map(i+1,j+1)); endend%滤波完成,边缘处理,直接将原图边缘加入fig2(1,:)=map(1,:);fig2(row,:)=map(row,:);fig2(:,1)=map(:,1);fig2(:,col)=map(:,col);figure(3)subplot(2,1,1)imshow(fig2)title('加权去噪')fig21=map-fig2;subplot(2,1,2)imshow(fig21)title('噪声图像')%@@@@@@@@@@@@@@@@@@@@@中值滤波,存储在fig3中fig3=uint8(zeros(row,col));sortmap=uint8(zeros(1,9));for i=2:row-1 for j=2:col-1 sortmap=sort([map(i-1,j-1:j+1),map(i,j-1:j+1),map(i+1,j-1:j+1)]); fig3(i,j)=sortmap(5); endend%滤波完成,边缘处理,直接将原图边缘加入fig3(1,:)=map(1,:);fig3(row,:)=map(row,:);fig3(:,1)=map(:,1);fig3(:,col)=map(:,col);figure(4)subplot(2,1,1)imshow(fig3)title('中值去噪')fig31=map-fig3;subplot(2,1,2)imshow(fig31)title('噪声图像')腐蚀和膨胀的matlab实现:map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(map,[])title('原始灰度图像')Y=zeros(row,col); %存储输出图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5根据通道二值化 for i=1:row for j=1:col if map1(i,j,2)>map1(i,j,1)&&map1(i,j,2)>map1(i,j,3) Y(i,j)=1; else Y(i,j)=0; end end endfigure(2)imshow(Y,[])title('二值化后图像')%腐蚀B=ones(3,3);%腐蚀剂OUT1=zeros(row,col);%程序中间输出1OUT2=zeros(row,col);%程序中间输出2for i=2:row-1 for j=2:col-1 a=sum(sum(Y(i-1:i+1,j-1:j+1).*B)); if a==9 OUT1(i,j)=1; else OUT1(i,j)=0; end endend%腐蚀完成figure(3)imshow(OUT1,[])title('腐蚀后二值图')figure(4)imshow(B,[])title('结构元素')dOUT1=Y-OUT1;figure(5)imshow(dOUT1,[])title('原二值图减腐蚀后的图')%对原图膨胀for i=2:row-1 for j=2:col-1 a=sum(sum(Y(i-1:i+1,j-1:j+1).*B)); if a>=1; OUT2(i,j)=1; else OUT2(i,j)=0; end endend%膨胀完成figure(6)imshow(OUT2,[])title('膨胀后的图')dOUT2=Y-OUT2;figure(7)imshow(dOUT2,[])title('原二值图减膨胀后的图')边缘提取的matlab实现:%阈值分割图像map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endend%灰度化完成,输出灰度图figure(1)imshow(map,[])title('原始灰度图像')Y=zeros(row,col); %存储输出图像fprintf('请取一个目标点,结束后回车\n')[x1,y1]=getpts; %获得区域生长起始点x=round(x1); %横坐标取整y=round(y1); %纵坐标取整K=map(x,y);T=input('请输入分割阈值T(0=1; OUT2(i,j)=1; else OUT2(i,j)=0; end endend%再次腐蚀a=0;for i=2:row-1 for j=2:col-1 a=sum(sum(OUT2(i-1:i+1,j-1:j+1).*B)); if a==9 OUT(i,j)=1; else OUT(i,j)=0; end endendOUT=OUT2-OUT;bound=sum(sum(OUT));figure(3)imshow(OUT,[])title('提取的边界图像')fprintf('边界长度:%d\n',bound)直线检测的matlab实现:map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endendmap2=map; %灰度图副本%灰度化完成,输出灰度图figure(1)imshow(map,[])title('原始灰度图像')B=zeros(row,col); %存储输出图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%根据通道二值化 for i=1:row for j=1:col if map1(i,j,2)>map1(i,j,1)&&map1(i,j,2)>map1(i,j,3) B(i,j)=1; else B(i,j)=0; end end end%figure(2)%imshow(B,[])%title('二值化后图像')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下为边界提取程序A=ones(3,3);%腐蚀剂Y1=zeros(row,col);%腐蚀后图像for i=2:row-1 for j=2:col-1 a=sum(sum(B(i-1:i+1,j-1:j+1).*A)); if a==9 Y1(i,j)=1; else Y1(i,j)=0; end endendY=B-Y1;num=sum(sum(Y));fprintf('轮廓图像中边界长度为%d\n',num)figure(3)imshow(Y,[])title('轮廓图像')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下为直线检测程序N=101; %theta范围为0-pi/2,将其100等分,在进行正余弦计算时再转换成弧度。rohmax=round(sqrt(row^2+col^2))+1; %roh的最大值应为RT=zeros(N,rohmax); %roh-theta计数器。for i=1:row for j=1:col if Y(i,j)==1 %若为边界上的点,则进行计算。 for theta=0:pi/200:pi/2 roh=i*cos(theta)+j*sin(theta); m=round(theta*200/pi+1); n=round(roh); RT(m,n)=RT(m,n)+1; end end endend%统计完成p=90;%包含p个以上像素的直线标记出来cnt=0;%记录直线条数q=[];for i=1:N for j=1:rohmax if RT(i,j)>=p q=[q,RT(i,j)]; cnt=cnt+1; RT(i,j)=1; else RT(i,j)=0; end endend%标记完成Y2=zeros(row,col); %标记图for m=1:N for n=1:rohmax if RT(m,n)==1 %遍历RH图,只要roh和theta满足条件,计算响应的(x,y) for i=1:row for j=1:col if Y(i,j)==1 %遍历边界点,检测是否在满足条件的直线上。 z=i*cos((m-1)*pi/200)+j*sin((m-1)*pi/200); %z=xcostheta+ysintheta w=round(z); if w==n Y2(i,j)=1; end end end end end endend%检测完成,标记在Y2中for i=1:row for j=1:col if Y2(i,j)==1 map2(i,j)=255; %检测到的直线标记在灰度图副本中 end endendfigure(4)imshow(map2,[])title('直线检测结果')fprintf('\n%d条直线长度分别为:\n',cnt)lentth=q' 写在后面:其中有一些需要二值化处理的地方,由于图像是植物,这里根据绿色的地方RGB通道中绿色通道的数值会较大的特点进行二值化。这一点是从别人那里学来的,大家可以推而广之,效果很不错哟~~问道太极
更多简介内容

推荐帖子

【KW41Z】matlab图像处理
接上一篇帖子 【新提醒】升级bootloader失败,看下各短路接口,再研究 - 【NXP Kinetis MCU】 - 电子工程世界-论坛 http://bbs.eeworld.com.cn/thread-529641-1-1.html 好久没更新了,最近在看图像识别处理方面的知识,和这个帖子有关http://bbs.eeworld.com.cn/thread-533915-1-1.html
suoma 【NXP Kinetis MCU】
DM642图像处理程序的主要结构
直接从图像处理这块进行学习不是特别适应,以前做单片机时由于单片机的片内资源不是特别多,所以对片内资源掌握的比较好,相关的寄存器配置等都是从底层自己配置,现在学习DSP反而不知道怎样从硬件入手了,只能从顶层向底层倒着来摸索。这是一个简单的图像处理程序,仔细看看,很多地方不懂,只能先了解大概,很多地方可能还没有认识到,在以后的学习中再接着摸索。在源程序的基础之上我加了一些注释,程序如下:/******
Aguilera 【DSP 与 ARM 处理器】
图像处理能力评测之五--UCOSIII移植
本帖最后由 ilovefengshulin 于 2016-12-29 10:39 编辑 图像处理能力评测之五--UCOSIII移植硬件平台:STM32F769IDISCOVERY软件平台:KEIL5.1 UCOSIII简介:         uC/OS-III是一个可扩展的,可固化的,抢占式的实时内核,它管理的任务个数不受限制。它是第三代内核,提供了现代实时内核所期望的所有功能包括资源管理、
ilovefengshulin 【stm32/stm8】
[新手求助]matlab音频处理
在用matlab进行音频处理是,通过X(2)=0,让频谱中一个特定的频率强度为0后,sound无法播出任何声音 这是为什么? [x,fs,bits]=wavread('c:\Users\xpfab\Desktop\icerain.wav'); X=fft(x); n=length(x); X(2)=0 magX=abs(X); xnew=ifft(X); sound(xnew,fs
dreambutterfly 【DSP 与 ARM 处理器】
[新手求助]matlab的音频处理
原信号x是没有虚部的,在傅里叶变换,低通滤波,傅里叶反变化后得到的xnew复数矩阵, 但如果取abs(xnew)复原,音频失真严重;但如果选择real(xnew)复原,则与原音频基本一致。 我想问xnew中的虚部为什么产生?虚部大小又代表什么?为什么信号的强度不能用abs(xnew)表示,要用 real(abs)表示? [x,fs,bits]=wavread('c:\Users\xpfab
dreambutterfly 【DSP 与 ARM 处理器】
求助matlab的音频处理问题
原信号x是没有虚部的,在傅里叶变换,低通滤波,傅里叶反变化后得到的xnew复数矩阵, 但如果取abs(xnew)复原,音频失真严重;但如果选择real(xnew)复原,则与原音频基本一致。 我想问xnew中的虚部大小代表什么?为什么信号的强度不能用abs(xnew)表示,要用 real(abs)表示? [x,fs,bits]=wavread('c:\Users\xpfab\Desktop\
dreambutterfly 【DSP 与 ARM 处理器】

评论


个人中心

意见反馈

求资源

回顶部

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子

搜索下次设计所需的
TI 器件

● 目前在售器件有45,000款
● 6.99美元标准运费,不受时间和地点限制
● 无最低起订量要求

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

EEWorld电子技术资料下载——分享有价值的资料

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })