matlab实现灰度图像伪彩色处理
1.基于灰度图像的伪彩色处理
代码展示:
clear all;
close all;I = double(rgb2gray(imread('图片1.jpg')));
[M N] = size(I);
I2 = zeros(M, N, 3); %初始化三通道for x = 1 : Mfor y = 1 : Nif I(x, y) <= 127 % RI2(x, y, 1) = 0;elseif I(x, y) <= 191I2(x, y, 1) = 4 * I(x, y) - 510;elseI2(x, y, 1) = 255;endif I(x, y) <= 63 % GI2(x, y, 2) = 254 - 4 * I(x, y);elseif I(x, y) <= 127I2(x, y, 2) = 4 * I(x, y) - 254;elseif I(x, y) <= 191I2(x, y, 2) = 255;elseI2(x, y, 2) = 1022 - 4 * I(x, y);endif I(x, y) <= 63 % BI2(x, y, 3) = 255;elseif I(x, y) <= 127I2(x, y, 3) = 510 - 4 * I(x, y);elseI2(x, y, 3) = 0;endend
endimshow(uint8(I2));
2.基于灰度分层的伪彩色图像
代码展示:
I=imread('图片1.jpg');
I=rgb2gray(I)
imshow(I) %显示灰度图像
thresholds= [45 65 84 108 134 157 174 189 206 228]; %设置阈值
G2C=grayslice(I,thresholds); % 密度分层
figure;
mymap = [0 0 0 %黑色1 0 0 %红色0 1 0 %绿色0 0 1 %蓝色1 1 0 %黄色1 1 1]; %白色
surf(peaks)
imshow(G2C,colormap(mymap)); %显示伪彩色图像
3.基于频域的伪彩色图像处理
代码展示:
clear;close all
I=imread('图片1.jpg');
I=rgb2gray(I);
F=fft2(double(I));
F=fftshift(F); %中心化
sz=size(I);
fm=abs(F); %取模,傅里叶变换图像上的点的值成为了复数,取模后才能显示为图像
subplot(221),imshow(log(1+fm),[]) %对数变换 拉伸 增强显示视觉效果
threshold=60; % boundary between lower frequency and higher frequency
highF(sz(1),sz(2))=zeros;
lowF(sz(1),sz(2))=zeros;
for i=1:sz(1)for j=1:sz(2)d=sqrt((i-sz(1)/2)*(i-sz(1)/2)+(j-sz(2)/2)*(j-sz(2)/2));if d<thresholdlowF(i,j)=F(i,j);highF(i,j)=0;elsehighF(i,j)=F(i,j);lowF(i,j)=0;endend
end
highF=ifftshift(highF);
highI=ifft2(highF);
lowF=ifftshift(lowF);
lowI=ifft2(lowF);lowI=real(lowI); %reserve the real part
highI=real(highI); %reserve the real partlowIII(sz(1),sz(2),3)=zeros;
highIII(sz(1),sz(2),3)=zeros;
for i=1:sz(1)for j=1:sz(2)lowIII(i,j,1)=lowI(i,j);lowIII(i,j,2)=lowI(i,j);lowIII(i,j,3)=lowI(i,j);if highI(i,j)<10% #4B0082highIII(i,j,1)=hex2dec('4B');highIII(i,j,2)=hex2dec('00');highIII(i,j,3)=hex2dec('82');elseif highI(i,j)<50% #8B0000highIII(i,j,1)=hex2dec('8B');highIII(i,j,2)=hex2dec('00');highIII(i,j,3)=hex2dec('00');elseif highI(i,j)<100% #FF4500highIII(i,j,1)=hex2dec('FF');highIII(i,j,2)=hex2dec('45');highIII(i,j,3)=hex2dec('00');elseif highI(i,j)<150% #FFD700highIII(i,j,1)=hex2dec('FF');highIII(i,j,2)=hex2dec('D7');highIII(i,j,3)=hex2dec('00');elseif highI(i,j)<200% #7A67EEhighIII(i,j,1)=hex2dec('7A');highIII(i,j,2)=hex2dec('67');highIII(i,j,3)=hex2dec('EE');else% #008B00highIII(i,j,1)=hex2dec('00');highIII(i,j,2)=hex2dec('8B');highIII(i,j,3)=hex2dec('00');endend
endlowIII=uint8(lowIII);
highIII=uint8(highIII);subplot(222); imshow(lowIII); title('灰度图像');
subplot(223); imshow(highIII); title('伪彩色图相处');
4.基于位平面的伪彩色处理
代码展示:
clc;
clear all;
X=double(rgb2gray(imread('图片1.jpg')));
[h w] = size(X);
subplot(3,3,1);
imshow(X,[]);
title('原始图像');tmp(h,w,3)=zeros;color = ["4B","00","82","8B","00","00","FF","45","00","DD","A0","DD","7A","67","EE","00","8B","00","94","00","D3","00","00","80"];for k=1:8tmp(:,:,:)=0;for i=1:hfor j=1:wtempIndex = bitget(X(i,j),k); %灰度值分解为二进制串,然后取第k位if tempIndex == 1tmp(i,j,1) = hex2dec(color(3*(k-1)+1));tmp(i,j,2) = hex2dec(color(3*(k-1)+2));tmp(i,j,3) = hex2dec(color(3*(k-1)+3));endendendsubplot(3,3,k+1);imshow(tmp,[]);ind = num2str(k);imti = ['第',ind,'个位平面'];title(imti);
end
5.基于金字塔的伪彩色处理
5.1高斯金字塔函数
function pyr = gauss_pyramid1(I,nlev)pyr = cell(nlev,1);
pyr{1} = I;
G_LOWER = I;f = [.05, .25, .4, .25, .05];
f = f'*f;for l = 2:nlev G_LOWER=G_LOWER(1:2:size(G_LOWER,1)-1,1:2:size(G_LOWER,2)-1); %降采样 pyr{l}=imfilter(G_LOWER,f,'replicate');
endend
5.2不同分辨率金字塔上色
clear;
I = im2double(rgb2gray(imread('图片1.jpg')));
%¸高斯金字塔调用
gauss_pyr=gauss_pyramid1(I,5);
color = ['FF','00 ','FF','8B','00','8B','FF','00','00','CD','68','39','19','19','70'];for k=1:length(gauss_pyr)[M,N]=size(gauss_pyr{k});for i=1:Mfor j=1:Nif gauss_pyr{k}(i,j)<0.2% 变色gauss_pyr{k}(i,j,1)=hex2dec(color(3*k-2));gauss_pyr{k}(i,j,2)=hex2dec(color(3*k-1));gauss_pyr{k}(i,j,3)=hex2dec(color(3*k));elseif gauss_pyr{k}(i,j)<0.3% #FF00FF 洋红gauss_pyr{k}(i,j,1)=hex2dec('FF');gauss_pyr{k}(i,j,2)=hex2dec('00');gauss_pyr{k}(i,j,3)=hex2dec('FF');elseif gauss_pyr{k}(i,j)<0.4% #FFD700金gauss_pyr{k}(i,j,1)=hex2dec('FF');gauss_pyr{k}(i,j,2)=hex2dec('D7');gauss_pyr{k}(i,j,3)=hex2dec('00');elseif gauss_pyr{k}(i,j)<0.6% #4B0082靛青gauss_pyr{k}(i,j,1)=hex2dec('4B');gauss_pyr{k}(i,j,2)=hex2dec('00');gauss_pyr{k}(i,j,3)=hex2dec('82');elseif gauss_pyr{k}(i,j)<0.8% #FFFF00纯黄gauss_pyr{k}(i,j,1)=hex2dec('FF');gauss_pyr{k}(i,j,2)=hex2dec('FF');gauss_pyr{k}(i,j,3)=hex2dec('00');else% #008000纯绿gauss_pyr{k}(i,j,1)=hex2dec('00');gauss_pyr{k}(i,j,2)=hex2dec('80');gauss_pyr{k}(i,j,3)=hex2dec('00');end
matlab实现灰度图像伪彩色处理相关推荐
- 图像有损压缩matlab程序,基于Matlab的灰度图像DCT与RLE的混合有损压缩
人工智能及识别技术本栏目责任编辑:唐一东第5卷第21期(2009年7月)基于Matlab 的灰度图像DCT 与RLE 的混合有损压缩 朱玲芳,刘任任 (湘潭大学信息工程学院,湖南湘潭411105) 摘 ...
- matlab求灰度图像梯度,[求助]如何求图像的梯度
[求助]如何求图像的梯度 书上举例灰度图像: a = 0 0 0 100 100 0 0 0 100 100 0 0 0 100 100 100 100 100 100 100 100 100 100 ...
- matlab 识别灰度图像与彩色图像
灰度图片与彩色图像在处理上面存在一些差别,编程实现图像处理时往往需要将两者分开处理,那么如何将灰度图像和彩色图像分开呢? 这个问题我们在做logo识别过程中出现过,我将我的解决方法分享供大家参考. 分 ...
- Matlab对灰度图像的频域进行高通滤波和低通滤波
1. 要求 对灰度图像进行离散傅里叶变换(Discrete Fourier Transfom, DFT)变换,在频域上分别使用理想的高通和低通滤波器进行滤波,显示滤波后的频域图像,以及逆离散傅里叶变换 ...
- matlab 256灰度图像,MATLAB实现256色灰度图像的Arnold置乱
MATLAB实现256色灰度图像的Arnold置乱 下面的程序实现256色灰度图像的Arnold置乱.以前用VC做很麻烦,但在matlab中却显得非常简洁.matlab不愧是一款很受欢迎的辅助研究工具 ...
- 用MATLAB进行灰度图像灰度值的处理
在处理数据集时,需要将图像的灰度值进行替换,例如将图像中灰度值为5的像素转化为灰度值为1,将所有大于0的灰度值的像素都变成灰度值为1的图像,MATLAB代码转换如下: 单张图像的处理: ...
- matlab中将灰度图像转换为彩色图像
函数实现 function color_map = gray2color(heat_map) %将灰度图像转换为彩色图像 cmap = jet; sz = size(heat_map); color_ ...
- matlab灰度图像分割标记,matlab – 分割灰度图像
这是一个首发-- 使用 circular Hough transform找到圆形部分.为此我最初是 threshold the image locally. im=rgb2gray(imread('L ...
- MATLAB实现灰度图像形态学(膨胀、腐蚀)
1. 首先是灰度图腐蚀 function eroder = gray_erode(img, stel) img = double(img); [rows, cols] = size(img); [ir ...
- 数学建模--MATLAB图像处理基础
平时把基础知识学一下,比赛的时候深入学一下就可以用了. 图像类型的转换 基础知识 数字图像(计算机图像处理):将图像信号数字化后利用计算机进行处理的过程. 图像的表示方法是对图像处理算法描述和利用计算 ...
最新文章
- 【星球知识卡片】深度学习图像降噪有哪些关键技术点,如何学习
- java状态模式所有情况_轻松掌握Java状态模式
- mybatis 时间_开发工具:Mybatis.Plus.插件三种方式的逆向工程
- 用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
- 12种食物最养男人 10种食物最养女人 太值得收藏了
- 事件(二):事件处理程序
- 【Android自定义View】Bitmap的绘制和颜色滤镜
- java获取网络图片_做个看图片的App玩玩_第一篇
- CSDN邀请您成为技术中心特约作者
- RF接口测试中的重复执行
- 如何生成一个QRCode(二维码)
- 鸿蒙系统可以安装当贝市场吗,荣耀智慧屏安装软件全攻略,新手党必备!当贝市场推荐...
- android TV 开发规范
- ABC162 D RGB Triplets
- 如何将pdf中一些特定页提取存储在另一个pdf中
- ps4仁王服务器不稳定,仁王运行流畅图文教学 卡顿解决方法指南 怎样运行流畅 流畅运行方法-游侠网...
- 大数据风控必看,挖掘学历数据中暗藏的还款意愿及还款能力
- 我记得你往日的样子----聂鲁达
- 简历制作课——如何写简历?
- 关于用盐去黑头的亲身经历~ - 生活至上,美容至尚!