您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Matlab对比度与分辨率实验
1、用matlab程序实现同时对比度实验。源程序:clearm=256;n=256;ground_gray1=0;X=ones(m,n)*ground_gray1;m0=1;n0=1;step1=128;step2=255;ground_gray1=250;X(m0:m0+step1,n0:n0+step2)=ground_gray1;m0=40;n0=100;step=50;before_gray1=40;X(m0:m0+step,n0:n0+step)=before_gray1;m0=180;n0=100;step=50;before_gray1=40;X(m0:m0+step,n0:n0+step)=before_gray1;figure;imshow(uint8(X));imwrite(X,'i.jpg');说明:两边的小方格灰度一样,但因为在不同的灰度背景之下灰度看起来不一样。遇到的问题:此次实验是通过对老师给我们的例子,开始的时候并不能完全读懂源代码,很难下手。后来在宿舍里通过上机修改各个参数了解了他们各自的作用。从而清楚地了解老师的源程序并且完成此次实验。2、用matlab程序实验空间分辨率变化效果。源程序:clearX=imread('1.jpg');figure;imshow(uint8(X));[m,n]=size(X);X1=X(1:2:m,1:2:n);figure;imshow(uint8(X1));mwrite(X1,'13.jpg');X2=X(1:4:m,1:4:n);figure;imshow(uint8(X2));mwrite(X2,'12.jpg');X3=X(1:8:m,1:8:n);figure;imshow(uint8(X3));imwrite(X3,'11.jpg');说明:大图为原图,其余三个图像分别是1:2,1:4,1:8.遇到的问题:开始的时候并十分不清楚怎样改变空间分辨率,后来在通过老师在课堂上的实例讲解了解。并且在此基础上完成了实验。3、用matlab程序实验幅度分辨率变化源代码:clearX=imread('li4.jpg');[mm,nn]=size(X);fori=1:mmforj=1:nnX128(i,j)=2*(ceil(X(i,j)/2));%灰度级为128endendfori=1:mmforj=1:nnX64(i,j)=4*(ceil(X(i,j)/4));%灰度级为64endendfori=1:mmforj=1:nnX32(i,j)=8*(ceil(X(i,j)/8));%灰度级为32endendfori=1:mmforj=1:nnX16(i,j)=16*(ceil(X(i,j)/16));%灰度级为16endendfori=1:mmforj=1:nnX8(i,j)=32*(ceil(X(i,j)/32));%灰度级为8endendfori=1:mmforj=1:nnX4(i,j)=64*(ceil(X(i,j)/64));%灰度级为4endendfori=1:mmforj=1:nnX2(i,j)=128*(ceil(X(i,j)/128));%灰度级为2endendfiguresubplot(2,4,1);imshow(uint8(X));title('256级');subplot(2,4,2);imshow(uint8(X128));title('128级');subplot(2,4,3);imshow(uint8(X64));title('64级');subplot(2,4,4);imshow(uint8(X32));title('64级');subplot(2,4,5);imshow(uint8(X16));title('16级');subplot(2,4,6);imshow(uint8(X8));title('8级');subplot(2,4,7);imshow(uint8(X4));title('4级');subplot(2,4,8);imshow(uint8(X2));title('2级');说明:此实验通过取整函数的使用实现了灰度级的映射,从而实现幅度分辨率的改变。遇到问题:开始打算用if语句实现幅度分辨率的变化,但是很快就碰到了问题,因为当灰度级比较高的时候源程序会变得非常冗长。最后通过请教同学得知可用取整函数才解决了这一问题。
本文标题:Matlab对比度与分辨率实验
链接地址:https://www.777doc.com/doc-4416619 .html