matlab图像处理相关

彩色图像转化为灰度(rgb->gray)的方法有两种:

       一个是令RGB三个分量的数值相等,输出后便可以得到灰度图像;

       另一种是转化为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,得到的图像就是灰度图像了。

       MATLAB对于图像处理中有丰富的函数,最简单的RGB转gray只需要一个函数rgb2gray()即可完成。

       YCbCr转RGB或RGB转YCbCr都需要满足一个前提条件,就是两者都是在0-255这么范围,是三个通道都要在这个范围。即可以转成uint8再进行ycbcr2rgb或rgb2ycbcr操作。

注意:

        Matlab中读取图片后保存的数据是uint8类型(取值范围0~255),但在图像矩阵运算的时候,使用的数据类型却是double类型若使用uint8类型的数据进行矩阵运算,一旦数据超出255就会溢出。

解决方法:

  1. 将读入的图像数据转化为double类型 ,转换结果取值I位于[0,255]。【推荐】
  2. 使用im2double() 进行转换,转换结果取值I位于[0,1]。
    此时,图像处理完成后,要使用im2uint8()或uint8(round(I*255)) 将图像数据的灰度值范围变回[0,255]。
  3. 将读入的图像数据转化为uint16类型,转换结果取值I位于[0,255]。

使用double类型的好处有以下两点:
①部分函数只支持double类型。
②保证图像数据运算的精度,防止数据溢出。

MATLAB在图像处理中常用语法和函数:

清空和关闭命令

clc 清空命令区域

clear 清空工作区

clear all 清空工作区与全局变量

close 关闭当前窗口

close all 关闭所有窗口

这几条命令一般写在代码的开头,用来清空或关闭之前操作残留的窗口和命令。

合成和提取RGB的三个分量

fR、fG、fB分别表示RGB三个分量的图像。一副RGB图像可以利用cat(级联)操作符合成彩色图像。

rgb_image = cat(3, fR, fG, fB)

提取三个分量:

fR = RGB(:, :, 1);   红色分量

fG = RGB(:, :, 2);   绿色分量

fB = RGB(:, :, 3);   蓝色分量

size()函数得到图片的行列数

[ROW, COL,DIM] =    size(R_data); 得到一副图像的行列数。

size(X,1)   得到矩阵X的行数  ;size(X,2)   得到矩阵X的列数  ;size(X,3)  得到矩阵X的第三维的值,如果是图像则为其通道数

显示图片

figure, imshow(imag) 保存第一幅图像并同时显示第二幅图像。

显示图片用imshow()函数,前面加个figure; 可以在原来显示的基础上重新打开一个窗口显示。

生成矩阵函数

zeros函数——生成零矩阵

ones函数——生成全1阵

【zeros的使用方法】

B=zeros(n):生成n×n全零阵。

B=zeros(m,n):生成m×n全零阵。

B=zeros([m n]):生成m×n全零阵。

B=zeros(d1,d2,d3……):生成d1×d2×d3×……全零阵或数组。

B=zeros([d1 d2 d3……]):生成d1×d2×d3×……全零阵或数组。

B=zeros(size(A)):生成与矩阵A相同大小的全零阵。

【ones的使用方法】ones的使用方法与zeros的使用方法类似

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值