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));

1

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实现灰度图像伪彩色处理相关推荐

  1. 图像有损压缩matlab程序,基于Matlab的灰度图像DCT与RLE的混合有损压缩

    人工智能及识别技术本栏目责任编辑:唐一东第5卷第21期(2009年7月)基于Matlab 的灰度图像DCT 与RLE 的混合有损压缩 朱玲芳,刘任任 (湘潭大学信息工程学院,湖南湘潭411105) 摘 ...

  2. 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 ...

  3. matlab 识别灰度图像与彩色图像

    灰度图片与彩色图像在处理上面存在一些差别,编程实现图像处理时往往需要将两者分开处理,那么如何将灰度图像和彩色图像分开呢? 这个问题我们在做logo识别过程中出现过,我将我的解决方法分享供大家参考. 分 ...

  4. Matlab对灰度图像的频域进行高通滤波和低通滤波

    1. 要求 对灰度图像进行离散傅里叶变换(Discrete Fourier Transfom, DFT)变换,在频域上分别使用理想的高通和低通滤波器进行滤波,显示滤波后的频域图像,以及逆离散傅里叶变换 ...

  5. matlab 256灰度图像,MATLAB实现256色灰度图像的Arnold置乱

    MATLAB实现256色灰度图像的Arnold置乱 下面的程序实现256色灰度图像的Arnold置乱.以前用VC做很麻烦,但在matlab中却显得非常简洁.matlab不愧是一款很受欢迎的辅助研究工具 ...

  6. 用MATLAB进行灰度图像灰度值的处理

            在处理数据集时,需要将图像的灰度值进行替换,例如将图像中灰度值为5的像素转化为灰度值为1,将所有大于0的灰度值的像素都变成灰度值为1的图像,MATLAB代码转换如下: 单张图像的处理: ...

  7. matlab中将灰度图像转换为彩色图像

    函数实现 function color_map = gray2color(heat_map) %将灰度图像转换为彩色图像 cmap = jet; sz = size(heat_map); color_ ...

  8. matlab灰度图像分割标记,matlab – 分割灰度图像

    这是一个首发-- 使用 circular Hough transform找到圆形部分.为此我最初是 threshold the image locally. im=rgb2gray(imread('L ...

  9. MATLAB实现灰度图像形态学(膨胀、腐蚀)

    1. 首先是灰度图腐蚀 function eroder = gray_erode(img, stel) img = double(img); [rows, cols] = size(img); [ir ...

  10. 数学建模--MATLAB图像处理基础

    平时把基础知识学一下,比赛的时候深入学一下就可以用了. 图像类型的转换 基础知识 数字图像(计算机图像处理):将图像信号数字化后利用计算机进行处理的过程. 图像的表示方法是对图像处理算法描述和利用计算 ...

最新文章

  1. 【星球知识卡片】深度学习图像降噪有哪些关键技术点,如何学习
  2. java状态模式所有情况_轻松掌握Java状态模式
  3. mybatis 时间_开发工具:Mybatis.Plus.插件三种方式的逆向工程
  4. 用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
  5. 12种食物最养男人 10种食物最养女人 太值得收藏了
  6. 事件(二):事件处理程序
  7. 【Android自定义View】Bitmap的绘制和颜色滤镜
  8. java获取网络图片_做个看图片的App玩玩_第一篇
  9. CSDN邀请您成为技术中心特约作者
  10. RF接口测试中的重复执行
  11. 如何生成一个QRCode(二维码)
  12. 鸿蒙系统可以安装当贝市场吗,荣耀智慧屏安装软件全攻略,新手党必备!当贝市场推荐...
  13. android TV 开发规范
  14. ABC162 D RGB Triplets
  15. 如何将pdf中一些特定页提取存储在另一个pdf中
  16. ps4仁王服务器不稳定,仁王运行流畅图文教学 卡顿解决方法指南 怎样运行流畅 流畅运行方法-游侠网...
  17. 大数据风控必看,挖掘学历数据中暗藏的还款意愿及还款能力
  18. 我记得你往日的样子----聂鲁达
  19. 简历制作课——如何写简历?
  20. 关于用盐去黑头的亲身经历~ - 生活至上,美容至尚!

热门文章

  1. 开氏温度与摄氏度换算_温度是怎么来的,有没有物质没有温度?
  2. MATLAB上根号怎么输入,在matlab中怎么输入特殊符号 matlab或运算符怎么打
  3. 驱动一款淘宝购买的130万像素的USB双目摄像头-记录
  4. win10 退出误登的微软账号,无需改注册机,无需重置系统
  5. CAD中PDF转DWG
  6. X波段卡塞格伦天线设计与仿真
  7. c#制作仿win7屏幕键盘之笔记
  8. c语言股票最大收益_C语言买卖股票问题
  9. 新型脑机接口实现无线通信
  10. Typora使用数学公式