基本原理:
它是对图像的灰度图值动态范围进行分割,使分割后的每一个灰度值区间甚至每一灰度值本身对应某一颜色。
具体而言,假定把一幅图像看作一个二维的强度函数,可以用一个平行于图像坐标平面的密度切割平面去切割图像的强度函数,这样,强度函数在分割处被分为上,下两部分,即两个灰度值区间。更进一步,如果用多个密度切割平面对图像函数进行分割,那么就可以将图像函数分割成多个区间,每一个区间赋予一个颜色,则原来的一幅灰度图像可以变成一个彩色图像。
程序:
%密度分割法
%wangwenshuai 2021/4/2
clc;
%读取图片并转换模式
P = imread('test7.png');
P = rgb2gray(img);
%创建三个通道的全零矩阵
[h,w]=size(P);
R=zeros(h,w);
G=zeros(h,w);
B=zeros(h,w);
%设置灰度级数阈值(满足2L<=255即可)
L=125;
%各像素点进行密度级划分并上色
for i=1:h
for j=1:w
if(P(i,j)>=0&&P(i,j)<L/4)
R(i,j)=100;
G(i,j)=0;
B(i,j)=100;
else if(P(i,j)>=L/4&&P(i,j)<L/2)
R(i,j)=100;
G(i,j)=0;
B(i,j)=0;
else if(P(i,j)>=L/2&&P(i,j)<3*L/4)
R(i,j)=0;
G(i,j)=100;
B(i,j)=0;
else if(P(i,j)>=3*L/4&&P(i,j)<L)
R(i,j)=0;
G(i,j)=100;
B(i,j)=100;
end
end
end
end
end
end
%输出
imshow(cat(3,R,G,B));
运行结果:
原图: