数字图像处理--(01)数字图像的基本操作(MATLAB)(一)

简介: 数字图像处理--(01)数字图像的基本操作(MATLAB)

本文作为本科系统学习数字图像处理的一个开篇吧,之前间断的学习了一些FPGA和matlab的相关知识,正逢校内开设这个课程,近期就更新下关于数字图像的知识吧,由于博主今年要准备考研,所以花在博客上的时间会比较少。

数字图像的操作


1.灰度或者二值转换为索引图像


gray2ind


将灰度或二进制图像转换为索引图像

[X,cmap] = gray2ind(I,c)

[X,cmap] = gray2ind(BW,c)

解释:

I— 灰度图像—数字数组

BW— 二进制图像—数字数组

c— 颜色图颜色的数量—正整数

下面把图像转换为128,64,16灰度级的索引图片

clc;
clear all;close all;
img=imread('../img1.jpg');
img=rgb2gray(img);
figure;
imshow(img);
title('original');
[x,map]=gray2ind(img,128);
figure;
imshow(x,map);
title('gray_128');
%%%%%%%%%%%重复操作%%%%%%%%%%%%%%
[x1,map1]=gray2ind(img,64);
figure;
imshow(x1,map1);
title('gray_64');
[x2,map2]=gray2ind(img,16);
figure;
imshow(x2,map2);
title('gray_16');

效果


在灰度级不断减小时,图片逐渐有失真的趋势

image.png

2.索引图像转换为灰度图像


ind2gray


I = ind2gray(X,cmap)

I = ind2gray(X,cmap) 将X带有颜色图 的索引图像转换cmap为灰度图像I。该 ind2gray功能在保持亮度的同时从输入图像中删除色相和饱和度信息。

X— 索引图像----数字数组

cmap— 颜色图----c-by-3数字数组

clc;
clear all;close all;
load trees
img = ind2gray(X,map);
figure,imshow(X,map);
title('orginal');
figure,imshow(img);
title('gray_image');

效果


image.png

3.RGB图像转换为灰度图像


rgb2gray


将 RGB 图像或颜色图转换为灰度图

语法:

I = rgb2gray(RGB)

newmap = rgb2gray(map)

clc;
clear all;close all;
img=imread('../img1.jpg');
gray=rgb2gray(img);
subplot(1,2,1);imshow(img);title('original');
subplot(1,2,2);imshow(gray);title('gray');

image.png

4.RGB图像转换为索引图像


rgb2ind


rgb2ind函数对于减少RGB图像的颜色数是非常有用的。

将真彩色图像转换为索引图像。在matlab命令窗口中键入doc rgb2ind或help rgb2ind可以获得更多关于该函数的帮助信息。

该函数将真彩色图像转换为索引图像, 由于RGB图像一个像素占用三个字节, 分别存储R、G、B分量的值,而索引图像一个像素占用一个字节。在将灰度图像转换为索引图像时, 是从3个字节映射到一个字节的关系。 通常有以下三种算法:

gray = (R + G + B) / 3,即求得R、G、B三个分量平均值作为索引图像中对应像素点的像素值。

gray = min(R, G, B),即以R、G、B三个中最小分量作为索引图像对应像素点的像素值。

gray = 0.3 * R + 0.59 * G + 0.11 * B(或者表示为:gray = ((77 * R + 151 * G + 28 * B) >> 8))

调用格式:

[X,map] = rgb2ind(RGB, n)

使用第二种算法把真彩色图像转换为索引图像,其中n指定map中颜色项数, n最大不能超过65536。

返回值中map即索引图像的调色板。

X = rgb2ind(RGB, map)

使用调色板map将真彩色图像转换为索引图像,即在调色板中找到与真彩色图像颜色值最接近的颜色作为转换后的索引图像的像素值。map中颜色项数(即size(map, 1))不能超过65536。

[X,map] = rgb2ind(RGB, tol)

利用第一种算法把真彩色图像转换为索引图像, map中最多包含(floor(1/tol)+1)^3种颜色, tol必须是介于0.0和1.0之间的数。

[…] = rgb2ind(…, dither_option)

clc;
clear all;close all;
img=imread('../lena.jpg');
subplot(2,2,1);imshow(img);title('original');
[x,map]=rgb2ind(img,16);
subplot(2,2,2);imshow(x,map);title('最小方差量化抖动');
[x1,map1]=rgb2ind(img,0.5);
subplot(2,2,3);imshow(x,map);title('均值化抖动处理');
[x2,map2]=rgb2ind(img,16,'nodither');
subplot(2,2,4);imshow(x,map);title('不抖动');

效果


image.png

5.索引图像转换为RGB图像


ind2rgb


和ind2gray类似

clc;
clear all;close all;
load trees
img = ind2rgb(X,map);
figure,imshow(X,map);
title('orginal');
figure,imshow(img);
title('rgb_image');

image.png

6.通过阈值转换为二值图像


im2bw


im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种颜色的组合。

语法

BW = im2bw(I, level)

BW = im2bw(X, map, level)

BW = im2bw(RGB, level)

其中level就是设置阈值的。level取值范围[0, 1]

clc;
clear all;close all;
load trees
img = im2bw(X,map,0.3);
subplot(2,2,1);imshow(X,map);title('orginal');
subplot(2,2,2);imshow(img);title('bw_ind');
rgb=imread('../img1.jpg');
rgb_bw = im2bw(rgb,0.3);
subplot(2,2,3);imshow(rgb);title('orginal');
subplot(2,2,4);imshow(rgb_bw);title('bw_rgb');

效果


image.png

目录
相关文章
|
4月前
|
机器学习/深度学习 数据可视化 算法
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
36 0
|
5月前
|
计算机视觉
数字图像处理笔记(一)Matlab实现直方图均衡化
数字图像处理笔记(一)Matlab实现直方图均衡化
|
5月前
|
机器学习/深度学习 存储 算法
毕业论文:基于matlab的数字图像分割技术研究及实现(分享需要的同学)
毕业论文:基于matlab的数字图像分割技术研究及实现(分享需要的同学)
181 0
|
5月前
|
机器学习/深度学习 索引
【MATLAB学习】—MATLAB基本操作(一)
【MATLAB学习】—MATLAB基本操作(一)
|
算法 数据安全/隐私保护
一种基于Arnold变换的数字图像加密算法(Matlab代码实现)
一种基于Arnold变换的数字图像加密算法(Matlab代码实现)
|
机器人 定位技术 计算机视觉
基于DIPUM工具箱对图书数字图像进行处理(Matlab代码实现)
基于DIPUM工具箱对图书数字图像进行处理(Matlab代码实现)
110 0
|
机器学习/深度学习 传感器 算法
数字图像分割与边缘检测实验附matlab代码
数字图像分割与边缘检测实验附matlab代码
数字图像分割与边缘检测实验附matlab代码
|
机器学习/深度学习 传感器 算法
【图像隐藏】基于DCT的数字图像水印防伪附matlab代码
【图像隐藏】基于DCT的数字图像水印防伪附matlab代码
|
机器学习/深度学习 传感器 算法
【图像加密】基于混沌系统与DNA编码的彩色数字图像加密系统附matlab代码
【图像加密】基于混沌系统与DNA编码的彩色数字图像加密系统附matlab代码

热门文章

最新文章

下一篇
无影云桌面