图像归一化matlab代码
时间: 2023-05-25 19:04:43 浏览: 109
以下是一个示例MATLAB代码,演示如何进行图像归一化:
% 读取图像
img = imread('input.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 查找图像的最小值和最大值
img_min = min(gray_img(:));
img_max = max(gray_img(:));
% 对图像进行归一化
norm_img = (gray_img - img_min) / (img_max - img_min);
% 显示归一化后的图像
imshow(norm_img);
请注意,这只是一个基本示例,您可能需要针对您的特定应用程序进行调整。如果您需要更高级的归一化方法,请参考MATLAB文档和其他在线资源。
相关问题
有雾图像归一化处理matlab代码
雾图像归一化处理是一种通过处理雾霾图像以提高图像质量的技术。在matlab中,可以使用以下代码进行雾图像归一化处理:
```matlab
I=im2double(imread('foggyimage.jpg')); %读取图片并将其转换为双精度浮点型
[m,n,c]=size(I);
if c==3 %如果图像是彩色的,则将其转换为灰度图像
I=rgb2gray(I);
end
dark_channel=minfilter(I,15); %计算暗通道图像
atmospheric_light=estimate_airlight(I,dark_channel); %估计大气光强度
transmission=calculate_transmission(I,atmospheric_light,dark_channel); %计算透射率
result=dehaze(I,transmission,atmospheric_light); %去雾
%下面是具体实现的各个子函数
function dark_channel = minfilter(I,patch_size)
%计算暗通道图像
end
function atmospheric_light = estimate_airlight(I,dark_channel)
%估计大气光强度
end
function transmission = calculate_transmission(I,atmospheric_light,dark_channel)
%计算透射率
end
function result = dehaze(I,transmission,atmospheric_light)
%去雾
end
```
以上代码分别实现了暗通道图像的计算、大气光强度的估计、透射率的计算以及去雾等功能,通过这些步骤可以完成雾图像归一化处理。
matlab对图像归一化处理代码
图像归一化是一种将图像像素值线性映射到指定范围内的处理方法,它可以使得图像处理更加精确。下面是一段MATLAB代码实现图像归一化处理:
首先,读取原始图像:
```matlab
I = imread('lena.bmp');
```
然后,将图像类型转换为double类型。
```matlab
I = im2double(I);
```
接下来,确定目标像素值范围。
```matlab
minVal = 0;
maxVal = 1;
```
然后,计算原始图像的最大像素值和最小像素值。
```matlab
imgMin = min(I(:));
imgMax = max(I(:));
```
根据最大、最小值计算比例尺度factor。
```matlab
factor = (maxVal - minVal) / (imgMax - imgMin);
```
计算出归一化后的图像J。
```matlab
J = (I - imgMin) .* factor + minVal;
```
最后,将图像像素值放缩到0-255之间。这里加上0.5是为了四舍五入。
```matlab
J = uint8(J .* 255 + 0.5);
```
完整的MATLAB代码实现如下:
```matlab
I = imread('lena.bmp');
I = im2double(I);
minVal = 0;
maxVal = 1;
imgMin = min(I(:));
imgMax = max(I(:));
factor = (maxVal - minVal) / (imgMax - imgMin);
J = (I - imgMin) .* factor + minVal;
J = uint8(J .* 255 + 0.5);
```
这样,图像归一化处理就完成了。