伪彩色增强(基于MATLAB)

article/2025/5/15 23:15:23

伪彩色增强(基于MATLAB)

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

1.真彩色

真彩色是RGB颜色的一种流行叫法。真彩色图像的分光系统与色光合成如下图所示:
在这里插入图片描述

2.伪彩色

将一幅灰度图像按灰度级别映射到彩色图像
在这里插入图片描述
常用的伪彩色图像增强方法:

(1)灰度分层法伪彩色处理

灰度分层那法又称灰度分割法或密度分层法,是伪彩色处理技术中最基本、最简单的方法。设一幅灰度图像 f ( x , y ) f(x,y) f(x,y),可以看作坐标 ( x , y ) (x,y) (x,y)的一个密度函数。把此图像的灰度分成若干等级,即相当于用一些和坐标平面即 x − y x-y xy平面平行的平面在相交区域切割此密度函数。如上图所示,将这种映射用图像表示便是如下:
在这里插入图片描述
利用MATLAB分层函数graysllce实现伪彩色图像处理:

clc;
I=imread('OIP-C (1).jfif');
I=rgb2gray(I);
imshow(I);
title('originalimage')
X=grayslice(I,16);           %原灰度图像灰度分16层
figure,imshow(X,hot(16));    %显示伪彩色处理图像
title('graysliceimage')

在这里插入图片描述

(2)灰度变换法伪彩色处理

这种变换方法是对输入图像的灰度值实现3种独立变换,按灰度值映射成不同大小的红、绿、蓝三基色值。然后,同他们分别去控制彩色显示器的红、绿、蓝电子枪,以产生相应的彩色显示。
在这里插入图片描述
常用的映射关系如下:
在这里插入图片描述
有映射关系可知,当灰度=0时, f R ( x , y ) = f G ( x , y ) = 0 , f B ( x , y ) = L f_{R}(x,y)=f_{G}(x,y)=0,f_{B}(x,y)=L fR(x,y)=fG(x,y)=0,fB(x,y)=L,从而显示蓝色;若灰度= L / 2 L/2 L/2, f R ( x , y ) = f B ( x , y ) = 0 , f G ( x , y ) = L f_{R}(x,y)=f_{B}(x,y)=0,f_{G}(x,y)=L fR(x,y)=fB(x,y)=0,fG(x,y)=L,从而显示绿色;若灰度= L L L, f G ( x , y ) = f B ( x , y ) = 0 , f R ( x , y ) = L f_{G}(x,y)=f_{B}(x,y)=0,f_{R}(x,y)=L fG(x,y)=fB(x,y)=0,fR(x,y)=L,从而显示红色。

clc;
I=imread('OIP-C (1).jfif');
I=rgb2gray(I);
figure(1),imshow(I);
I=double(I);
[M,N]=size(I);
L=256;
for i=1:Mfor j=1:Nif I(i,j)<=L/4R(i,j)=0;G(i,j)=4*I(i,j);B(i,j)=L;else if I(i,j)<=L/2R(i,j)=0;G(i,j)=L;B(i,j)=-4*I(i,j)+2*L;else if I(i,j)<=L/2R(i,j)=4*I(i,j)-2*L;G(i,j)=L;B(i,j)=0;elseR(i,j)=4*I(i,j)-2*L;G(i,j)=L;B(i,j)=0;endendendend
end
for i=1:Mfor j=1:NOUT(i,j,1)=R(i,j);OUT(i,j,2)=G(i,j);OUT(i,j,3)=B(i,j);end
end
OUT=OUT/256;
figure(2),imshow(OUT)

处理效果:

在这里插入图片描述

(3)频域伪彩色处理

在频率域伪彩色增强时,先把灰度图像 f ( x , y ) f(x,y) f(x,y)中的不同频率成分经FFT傅里叶变换到频率域。类似于灰度变换法,对对三种独立分量进行滤波,接着进行傅里叶逆变换得到三幅代表不同频率分量的单色图像,接着对他们进行附加处理,最后将三基色加载到彩色显示器的红、绿、蓝显示通道。
在这里插入图片描述
通常情况,每个滤波器的滤波性能不一样,典型的处理方法是采用低通、带通、高通三种滤波器把图像分成低频、中频、高频三个频域分量,然后分别给予不同的三基色。

clc;
I=imread('OIP-C (1).jfif');
I=rgb2gray(I);
figure(1),imshow(I);
[M,N]=size(I);
F=fft2(I);
fftshift(F);
REDcut=100;
GREENcut=200;
BLUEcenter=150;
BLUEwidth=100;
BLUEu0=10;
BLUEv0=10;
for u=1:Mfor v=1:ND(u,v)=sqrt(u^2+v^2);REDH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/REDcut)^2);%红色滤波器为低通GREENH(u,v)=1/(1+(sqrt(2)-1)*(GREENcut/D(u,v))^2);%绿色滤波器为高通BLUED(u,v)=sqrt((u-BLUEu0)^2+(v-BLUEv0)^2);BLUEH(u,v)=1-1/(1+BLUED(u,v)*BLUEwidth/((BLUED(u,v))^2-(BLUEcenter)^2)^2);%蓝色滤波器为带通end
end
RED=REDH.*F;
REDcolor=ifft2(RED);
GREEN=GREENH.*F;
GREENcolor=ifft2(GREEN);
BLUE=BLUEH.*F;
BLUEcolor=ifft2(BLUE);
REDcolor=real(REDcolor)/256;
GREENcolor=real(GREENcolor)/256;
BLUEcolor=real(BLUEcolor)/256;
for i=1:Mfor j=1:NOUT(i,j,1)=REDcolor(i,j);OUT(i,j,2)=GREENcolor(i,j);OUT(i,j,3)=BLUEcolor(i,j);end
end
OUT=abs(OUT);
figure,imshow(OUT);

处理结果:在这里插入图片描述


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

相关文章

利用 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…

第1章 操作系统引论课后答案

第1章 操作系统引论 1.1 简答题参考答案 1&#xff0e;在计算机系统上配置 OS&#xff08;operating system&#xff0c;操作系统&#xff09;的目标是什么&#xff1f;作用主 要表现在哪几个方面&#xff1f; 【参考答案】在计算机系统上配置OS&#xff0c;主要目标是实现&a…