标签:值化 picture 阈值 像素 灰度 MATLAB 图像 分量
支持原创作者:写得通俗易懂,一针见血。
https://blog.csdn.net/qq_36554582/article/details/82927086
首先先来明白几个概念:
1、彩色图像(RGB):图像的每个像素点都是由红(R)、绿(G)、蓝(B)三个分量来表示的,每一个分量一般分别介于0-255之间,当然如果每一个颜色分量用更多的位数去表示的话,那么分量的取值就会大于255。假设现在每个基色用一个字节表示,那么彩色图像的每一个像素就是用3*8=24位来表示,即一个像素可以呈现出2的24次方种颜色,大约是1600万种颜色。彩色图像在MATLAB中存储是一个三维的像素矩阵,第一维代表图像的X坐标,第二维代表图像的Y坐标,第三维代表R、G、B,第三维中的数字1代表R,数字2代表G,数字3代表B。
2、灰度图像(gray image):图像的每一个像素点只有一个颜色分量,这个颜色分量的取值同样也与每个像素的表示数据位数有关系,如果是8位的(即用8个二进制数来表示一个像素点的数值),那么分量取值就是0-255,共256级灰度,如果是16位的,那么分量取值就是0-65535,共65536级灰度。灰度图像在MATLAB中存储是一个二维像素矩阵,第一维代表图像的X坐标,第二维代表图像的Y坐标。
3、二值图像(binary image):图像的每一个像素点取值只有两种可能,要么是黑色,要么是白色。通常我们把其他图像转化为二值图像的时候,就会设定一个阈值,当原始图像的某个像素的数值大于这个阈值的时候,我们就把这个像素变成白色(颜色分量为255),如果某个像素的数值小于这个阈值的时候,我们就把这个像素变成黑色(颜色分量为0),当把原始图像的每一个像素点都这样遍历完之后,就形成了一幅二值化图像。二值化图像在MATLAB中是一个二维像素矩阵,第一维代表图像的X坐标,第二维代表图像的Y坐标。
下面我们在MATLAB中进行各个图像之间的转化:
%读取一张图片,并显示
original_picture=imread('C:\Users\MyPC\Desktop\cat.jpg');
figure(1);
imshow(original_picture);
title('原始RGB图像')%把图像转换成灰度图像
GrayPic=rgb2gray(original_picture);%把RGB图像转化成灰度图像
figure(2)
imshow(GrayPic);
title('RGB图像转化为灰度图像')%对图像进行二值化处理
thresh=graythresh(original_picture);%graythresh为自动确定二值化阈值函数,大于该阈值的就变成白色,小于该阈值的就变成黑色,所以阈值越大越黑,阈值越小越白
Pic2=im2bw(original_picture,thresh);%如果想要自己设定阈值,那么就可以这样写Pic2=im2bw(original_picture,value);,value=[0,1]中间的任何数值
figure(3);
imshow(Pic2);
title('RGB图像转化为二值化图像')thresh=graythresh(GrayPic);
Pic2_=im2bw(GrayPic,thresh);
figure(4);
imshow(Pic2_);
title('灰度图像转化为二值化图像')
结果如下:
标签:值化,picture,阈值,像素,灰度,MATLAB,图像,分量 来源: https://blog.csdn.net/weixin_43332715/article/details/118463134
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。