@dragonfive
2015-10-30T07:37:35.000000Z
字数 2460
阅读 697
课内学习——马晓龙
完成课本习题3.2(a)(b), 课本中文版《处理》第二版的113页。可以通过matlab帮助你分析理解。
% 下面是作业第一题f=imread('E:\资料\onedrive\code\test\image\Fig0310(a)(Moon Phobos).tif');f=im2double(f);subplot(2,2,1);imshow(f);title('原图');subplot(2,2,2);imhist(f);title('原图直方图');m=1/2;E=10;s=1./(1+(m./im2double(f)+eps).^E);subplot(2,2,3);imshow(s);title('展宽后的图');subplot(2,2,4);imhist(s);title('展宽后直方图');figure;r=[0:0.01:1];s=1./(1+(m./r).^E);plot(r,s);title('函数曲线');


下面设置不同的参数E得到的函数的曲线如下:
m=0.5;A=[0:1:10];B=[10:10:100];r=[0:0.01:1];for E=[A B]s=1./(1+(m./r).^E);%subplot(2,2,1);plot(r,s);axis([0 1 0 1])set(gca,'xtick',0:0.1:1);set(gca,'ytick',0:0.1:1);xlabel('x');ylabel('y');hold onend

一幅8灰度级图像具有如下所示的直方图,求直方图均衡后的灰度级和对应概率,并画出均衡后的直方图的示意图。(计算中取整采用四舍五入方法,图中的8个不同灰度级对应的归一化直方图为[0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02])

| 原灰度 | 映射灰度 | |
|---|---|---|
| 0 | 0.17 | 0 |
| 1 | 0.25 | 2 |
| 2 | 0.21 | 4 |
| 3 | 0.16 | 5 |
| 4 | 0.07 | 6 |
| 5 | 0.08 | 7 |
| 6 | 0.04 | 7 |
| 7 | 0.02 | 7 |
% 作业第二题G=8;p=[0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02];subplot(1,2,1);bar(p,0.2);set(gca,'XTickLabel',0:1:7);title('原始直方图')s=[];for i=1:8s=[s round(G*sum(p(1:i))-1)];end[m,n]=hist(s,unique(s))subplot(1,2,2);bar(m./8,0.2);set(gca,'XTickLabel',n);title('映射后的直方图')

(选做题)课本习题3.6。对于离散的情况,用matlab进行一下实验。
% 作业第三题f=rgb2gray(imread('E:\资料\onedrive\code\test\image\lena.png'));subplot(3,2,1);imshow(f);title('原图');subplot(3,2,2);imhist(f);title('原图直方图');[count x]=imhist(f);rigin_ratio=count./numel(f); %计算每个灰度占的比例;%下面计算每个灰度映射后的灰度% img2=histeq(f,256);s=[];G=256;%sum(rigin_ratio(G))for i=1:Gs=[s ceil(G*sum(rigin_ratio(1:i))-1)] ;endimg2=f;[m,n]=size(f);for i=1:mfor j=1:nimg2(i,j)=s(f(i,j)+1);endendsubplot(3,2,3);imshow(img2);title('映射后图');subplot(3,2,4);imhist(img2);title('映射后直方图');[count x]=imhist(img2);rigin_ratio=count./numel(f); %计算每个灰度占的比例;%下面计算每个灰度映射后的灰度% img3=histeq(f,256);s=[];G=256;%sum(rigin_ratio(G))for i=1:Gs=[s ceil(G*sum(rigin_ratio(1:i))-1)] ;endimg3=img2;[m,n]=size(img2);for i=1:mfor j=1:nimg3(i,j)=s(img2(i,j)+1);endendsubplot(3,2,5);imshow(img3);title('映射后图');subplot(3,2,6);imhist(img3);title('映射后直方图');

从图中可以看出第一次直方图均衡和第二次直方图均衡的效果是一样的
请用平方运算操作一副图片 用matlab作图
% 下面是在做平方运算;figure;img=imread('E:\资料\onedrive\code\test\image\lenargb.jpg');img=rgb2gray(img); %matlab把真彩图转化为灰度图;img=mat2gray(img); %读入的图片刚开始是uint8的,然后转化为double类型之后才能用mat2gray转化为0-1的doublei=1;for c=[0.04,0.1,0.2,0.4,0.67,1,1.5,2.5,5.0,10.0,25.0]y=img.^c;subplot(3,4,i); %把多个图片放在一起的方法;imshow(y);i=i+1;%hold onend

