前言
按照最大值灰度拉伸至0到255,可以实现灰度拉伸,常用于图像预处理过程中,这里给出Matlab实现的过程。
Matlab实现源代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%图像的最大灰度拉伸,类似scale_image_max
%Author:Zhu
%时间:2022.6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
image = imread("F:\\fabrik.png");
image_matrix=image(:,:,1);
image_matrix=double(image_matrix);
[height,width,channels]=size(image);
image_out = zeros(height,width);
currentMin = image_matrix(1,1);
currentMax = image_matrix(1,2);
%先找出图像灰度的最大,最小值
for i=1:height
for j=1:width
if(image_matrix(i,j)>currentMax)
currentMax = image_matrix(i,j);
elseif(image_matrix(i,j)<currentMin)
currentMin = image_matrix(i,j);
end
end
end
%根据目标灰度拉伸
targetMin = 0;
targetMax = 255;
%对灰度进行拉伸
for i=1:height
for j=1:width
image_out(i,j)= targetMin+((image_matrix(i,j)-currentMin)*(targetMax-targetMin))/(currentMax-currentMin);
end
end
%显示图像
image_out = uint8(image_out);
subplot(1,2,1);
imshow(image);
subplot(1,2,2);
imshow(image_out);
Halcon算子
scale_image_max (Image, ImageScaleMax)
Matlab与Halcon实现效果比对
Matlab实现效果
Halcon实现效果