[mtalab图像处理] 灰度的线性变换
2014-03-11 16:00
176 查看
clc;
clear all;
I= imread('cameraman.tif'); % 读入原图像
I = im2double(I); % 转换数据类型为double
[M,N] = size(I); % 计算图像面积
figure(1); % 打开新窗口
imshow(I); % 显示原图像
title('原图像');
figure(2); % 打开新窗口
[H,x] = imhist(I, 64); % 计算64个小区间的灰度直方图
stem(x, (H/M/N), '.'); % 显示原图像的直方图 直方图做了归一化(H/M/N)
title('直方图原图像');
% 增加对比度
Fa = 2; Fb = -55;
O = Fa .* I + Fb/255; %Fa>1时,输出图像的对比度将增大;Fa<1时,输出图像对比度将减小。
%Fa=1且Fb非零时,所有像素的灰度值上移或下移,使整个图像更暗或
%更亮。Fa<0,暗区变亮,亮区变暗。 实际处理图像是Fa,Fb是通过计算出来的
figure(3);
subplot(2,2,1);
imshow(O);
title('Fa = 2 Fb = -55 增加对比度图像');
figure(4);
subplot(2,2,1);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = 2 Fb = -55 增加对比度直方图');
% 减小对比度
Fa = 0.5; Fb = -55;
O = Fa .* I + Fb/255;
figure(3);
subplot(2,2,2);
imshow(O);
title('Fa = 0.5 Fb = -55 减小对比度图像');
figure(4);
subplot(2,2,2);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = 0.5 Fb = -55 减小对比度直方图');
% 线性增加亮度
Fa = 1; Fb = 55;
O = Fa .* I + Fb/255;
figure(3);
subplot(2,2,3);
imshow(O);
title('Fa = 1 Fb = 55 线性平移增加亮度图像');
figure(4);
subplot(2,2,3);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = 1 Fb = 55 线性平移增加亮度直方图');
% 反相显示 黑变白 白变黑
Fa = -1; Fb = 255;
O = Fa .* I + Fb/255;
figure(3);
subplot(2,2,4);
imshow(O);
title('Fa = -1 Fb = 255 反相显示图像');
figure(4);
subplot(2,2,4);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = -1 Fb = 255 反相显示直方图');
clear all;
I= imread('cameraman.tif'); % 读入原图像
I = im2double(I); % 转换数据类型为double
[M,N] = size(I); % 计算图像面积
figure(1); % 打开新窗口
imshow(I); % 显示原图像
title('原图像');
figure(2); % 打开新窗口
[H,x] = imhist(I, 64); % 计算64个小区间的灰度直方图
stem(x, (H/M/N), '.'); % 显示原图像的直方图 直方图做了归一化(H/M/N)
title('直方图原图像');
% 增加对比度
Fa = 2; Fb = -55;
O = Fa .* I + Fb/255; %Fa>1时,输出图像的对比度将增大;Fa<1时,输出图像对比度将减小。
%Fa=1且Fb非零时,所有像素的灰度值上移或下移,使整个图像更暗或
%更亮。Fa<0,暗区变亮,亮区变暗。 实际处理图像是Fa,Fb是通过计算出来的
figure(3);
subplot(2,2,1);
imshow(O);
title('Fa = 2 Fb = -55 增加对比度图像');
figure(4);
subplot(2,2,1);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = 2 Fb = -55 增加对比度直方图');
% 减小对比度
Fa = 0.5; Fb = -55;
O = Fa .* I + Fb/255;
figure(3);
subplot(2,2,2);
imshow(O);
title('Fa = 0.5 Fb = -55 减小对比度图像');
figure(4);
subplot(2,2,2);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = 0.5 Fb = -55 减小对比度直方图');
% 线性增加亮度
Fa = 1; Fb = 55;
O = Fa .* I + Fb/255;
figure(3);
subplot(2,2,3);
imshow(O);
title('Fa = 1 Fb = 55 线性平移增加亮度图像');
figure(4);
subplot(2,2,3);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = 1 Fb = 55 线性平移增加亮度直方图');
% 反相显示 黑变白 白变黑
Fa = -1; Fb = 255;
O = Fa .* I + Fb/255;
figure(3);
subplot(2,2,4);
imshow(O);
title('Fa = -1 Fb = 255 反相显示图像');
figure(4);
subplot(2,2,4);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('Fa = -1 Fb = 255 反相显示直方图');
相关文章推荐
- 数字图像处理MFC程序设计之灰度图像的线性变换
- 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)
- 图像处理 灰度的线性变换
- 处理2D图像和纹理——扩展图像内容处理器:灰度变换和处理器参数
- 图像的灰度变换——图像旋转、图像的反色处理、对比度拉伸
- 在MATLAB和OpenCV环境下写的灰度图像分段线性变换源码!
- CxImage图像灰度处理简述
- 图像滤镜处理算法:灰度、黑白、底片、浮雕
- 图像滤镜处理算法:灰度、黑白、底片、浮雕
- 图像的处理(一)----灰度图像像素颜色亮度处理
- C/C++ BMP(24位真彩色)图像处理(5)------图像の线性变换
- 基于mfc数字图像处理的小软件pdd-转换图片成RGB通道,反色,黑白,灰度图片
- 图像滤镜处理算法:灰度、黑白、底片、浮雕
- 图像处理—灰度处理
- [Python]图像处理日记——第一天(如何查询图片属性,数组与RGB,灰度图像如何互换)
- otsu结合OpenCV实现灰度图像自动阈值处理
- 图像灰度直方图绘制——使用QT实现一个图像处理软件2
- MATLAB 图像处理-线性变换和直方图均衡
- 【数字图像处理】[1]--灰度变换增强
- 灰度图像的伪彩色处理