matlab实现灰度图像伪彩色处理

article/2025/5/16 1:39:36

 

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

 


http://chatgpt.dhexx.cn/article/hk7YjIJ4.shtml

相关文章

伪彩色增强(基于MATLAB)

伪彩色增强(基于MATLAB&#xff09; 本博文参阅《数字图像处理》-杨帆 基于人眼生理视觉系统&#xff0c;对彩色微小差别的敏感程度远大于对灰度差别的敏感程度&#xff0c;彩色增强已经成为一门应用广泛的图像处理技术&#xff0c;其中伪彩色增强技术显得尤为突出。 首先得明…

利用 MATLAB 彩色显示高光谱图像(伪彩色,真彩色)

利用 MATLAB 彩色显示高光谱图像&#xff08;伪彩色&#xff0c;真彩色&#xff09; 前言一、使用imshow函数彩色显示高光谱图像注意事项&#xff1a; 欢迎学习交流&#xff01; 邮箱&#xff1a; z…1…6.com 网站&#xff1a; https://zephyrhours.github.io/ 前言 我们平时…

opencv之伪彩色处理

伪彩色处理 伪彩色&#xff08;pseudo-color)合成是按特定的数学关系把单波段灰度图像的灰度级变成彩色&#xff0c;然后进行彩色显示的方法&#xff0c;其目的是通过数据的彩色表达来增强区分目标的能力。 在图像分割之后&#xff0c;需要对目标进行上色&#xff0c;多数情况…

OpenCV--006:伪彩色:LUT作用与用法

文章目录 一、伪彩色二、LUT1. LUT概念2. 作用3. LUT函数4. LUT应用4.1 颜色空间缩减4.2 图像反转 三、OpenCV&#xff1a;applyColorMap函数 一、伪彩色 伪彩色&#xff08;Pseudo-color&#xff09;图像的每个像素的颜色不是由每个基本色分量的数值直接决定&#xff0c;实际…

【OpenCV 例程300篇】203. 伪彩色图像处理

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录 【youcans 的 OpenCV 例程300篇】203. 伪彩色图像处理什么是伪彩色图像&#xff1f…

itoa函数和atoi函数

itoa是广泛应用的非标准 C语言扩展函数。由于它不是标准C语言函数&#xff0c;所以不能在所有的 编译器中使用。但是&#xff0c;大多数的编译器&#xff08;如Windows上的&#xff09;通常在<stdlib.h>头文件中包含这个函数。 1说明编辑 功能&#xff1a;将任意类型的数…

C++之spriintf函数(itoa函数)

sprintf函数 头文件&#xff1a;stdio.h 原型 int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表 buffer&#xff1a;char型指针&#xff0c;指向将要写入的字符串的缓冲区。 format&#xff1a;格式化字符串。 [argument]…&#xff1a;可选参数&a…

Vue 艺术字体下载、设置

1&#xff0c;本人常用的下载地址&#xff1a;https://zh.fonts2u.com/ 2&#xff0c;找到你需要的字体点击下载 3&#xff0c;下载完之后有一个ttf文件 4&#xff0c;在vue里面&#xff0c;我个人在assets文件下创建一个文件夹&#xff0c;叫什么名字都行&#xff0c;找到你…

vue下载跨域图片

<a style"color: #409EFF;" click"downImg(url)">下载还款凭证</a>//方法一 &#xff08;只有这种方法解决我的需求&#xff09; downImg(imgsrc) {const src ${imgsrc}?t${new Date().getTime()}fetch(src).then(res > {res.blob().th…

vue点击url链接下载文件

在src下面新建一个downLoadUrl的目录 downLoadUrl / index.js文件 /** 后端返回文件的url,前端创建a标签来下载** 1. 解决了若文件为图片或浏览器支持的格式类型,点击下载会直接打开文件的问题,* 2. 下载文件时,浏览器会有闪动的问题** 页面内使用* 1. 引入指令 import do…

vue文件下载及重命名

本文所讲的下载地址格式为&#xff1a;地址文件名&#xff08;例如&#xff1a;http... test.docx&#xff09; 页面代码&#xff1a; <!--map为所下载的文件信息&#xff0c;包括文件名、路径等 --> <p v-down"map">这是文件名</p> js代码…

使用npm下载vue-router(vuex)路由报错,“export ‘XXXX‘ was not found in ‘vue‘

vue-router vuex 报错同理 vue-router vuex 报错同理 今天在写vue项目使用cnpm下载路由&#xff0c;然后就报错"export ref was not found in vue 原因&#xff1a;cnpm install vue-router --save 现在默认下载的是4.x的版本 &#xff0c;我是用的是…

vue实现文件下载

vue中文件下载 前言 Vue浏览器文件下载最简单的方法就是用a链接实现&#xff0c;然后加一个download属性。让后端返回[blob]文件格式&#xff0c;需要传递 responseType: ‘blob’ 一、使用步骤 展示文件&#xff0c;文件点击后查看方法为handlePreview <span style&qu…

vue学习之一:下载vue-cli项目

这几周一直辗转在vue官网和各大博客搜索关于vue项目实战的例子。学的实在是零零碎碎的。不过总算在对于vue项目搭建有个基本认知&#xff0c;于是直接拿起以前做过的项目进行改版了&#xff0c;接下来是从怎么搭建vue2.xvue-router项目实战写的一些列文章。我的开发环境都是基于…

下载vue脚手架@vue/cli(详解)

1.首先到官网下载node.js 2.在自己的电脑查看是否下载成功 使用window加r输入cmd使用node -v 查看node.js是否下载成功 3.使用npm下载yarn 注意&#xff1a;因为下载node.js中会自动帮你下载npm&#xff0c; npm install -g yarn 使用yarn -v 如果显示有版本号则下载成功…

vue.js中文官网下载vue.js失败了?

访问vue官网 https://v2.cn.vuejs.org/v2/guide/installation.html下载vue.js&#xff0c;页面直接报错404&#xff0c;只需要切换到英文版&#xff0c;重新下载即可成功。 或者直接访问以下地址: https://v2.vuejs.org/v2/guide/installation.html#Direct-lt-script-gt-Includ…

如何下载vue.js

vue官网&#xff1a;https://v2.vuejs.org/ 1、第一步 2、第二步 3、 第三步

idea 下载vue 插件

1.先查看自己的idea 的版本 2.然后去官网 https://plugins.jetbrains.com/plugin/9442-vue-js/versions 下载跟自己idea 版本对应的vue插件 一定要对应不然 报版本不对应问题 类似于&#xff1a; 下载完之后 把文件放在 相应位置 我是放在了idea的插件位置 一般是在 idea的…

Vue.js的下载和调用

Vue支持双向绑定&#xff0c;非常不错。将视图层和模型层分离开。是基于MVVM模型&#xff0c;模型-视图-视图模型 。支持ES6。 目录 一、在官网下载vue.js文件 二、声明Vue对象 三、Vue修饰符 1. v-once。 使{{}}内的值不能被修改 2.v-pre 。{{}}将不会被Vue替换&#xff0c…

操作系统课后答案第三章

**操作系统课后答案**第三章 处理及调度与死锁 1、高级调度与低级调度的主要任务是什么? 为什么要引入中级调度? 答&#xff1a;高级调度的主要任务&#xff1a;用于决定把外存上处于后背队列中的哪些作业调入内存&#xff0c;并为它们创建进程&#xff0c;分配必要的资源&am…