1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数字图像处理——二值 灰度和彩色图像 位图切割

数字图像处理——二值 灰度和彩色图像 位图切割

时间:2023-07-14 12:20:19

相关推荐

数字图像处理——二值 灰度和彩色图像 位图切割

二值、灰度和彩色图像处理

1. 二值、灰度图像的转换2. 彩色图像的表示3. 位图切割

——————————————————————————

——————————————————————————

图像:用二维函数f(x,y)表示,f(x,y)是点(x,y)的幅值。

灰度级:0~255 ==》256个灰度级层次:图像实际拥有灰度级的数量对比度:灰度反差的大小

二值图像(binary image):图像上的每一个像素只有两种可能的取值或灰度等级状态。每个像素只需要1Bit就可以完整存储信息灰度图像:灰度图只包含一个通道的信息,每个采样像素需要8位存储信息。f(x,y)取值在0~255彩色图像:3个f(x,y) 每个像素通常是由红(R)、绿(G)、蓝(B)三个分量来表示的,分量介于(0,255)。

1. 二值、灰度图像的转换

matlab代码:

%原图data = imread('lena.jpg'); %读取lena.jpg图片 subplot(221); %两行两列的画布上,这个图象在第一个位置%subplot(2,2,[1 3]) 占1和3的位置(不对称图案)imshow(data); %显示图片%灰度图gdata = rgb2gray(data); %灰度化处理subplot(222);imshow(gdata);%二值图n = graythresh(gdata); %获得一个合适的阈值 阈值取值范围【0,1】bw = im2bw(data, n); %将灰度图像转变成二进制图像bwsubplot(223);imshow(bw);

结果图:

2. 彩色图像的表示

彩色RGB图像用三维数组表示,最后一维长度为3(1,2,3分别表示RGB三个分量),对于每一个分量,数值范围也是0~255。红、绿、蓝三个通道的缩略图,都是以灰度显示的,用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255,0表示亮度最低,255表示亮度最亮。只有三个通道同时有值才可以显示出彩色(如红色通道显示为红色)。

image = imread('lennacolor.png');image_r=image(:,:,1);image_g=image(:,:,2);image_b=image(:,:,3);zero=zeros(512,512); %生成512*512全零矩阵R=cat(3,image_r,zero,zero); %将输入的3个数组image_r,zero,zero按照数组维度3连接起来G=cat(3,zero,image_g,zero);B=cat(3,zero,zero,image_b);RGB=cat(3,image_r,image_g,image_b);subplot(2,2,1),imshow(R),title('Red component');subplot(2,2,2),imshow(G),title('green component');subplot(2,2,3),imshow(B),title('blue component');subplot(2,2,4),imshow(RGB),title('original image');

F = imread('lennacolor.png');subplot(2,2,1),imshow(F(:,:,1)),title('红色分量');subplot(2,2,2),imshow(F(:,:,2)),title('绿色分量');subplot(2,2,3),imshow(F(:,:,3)),title('蓝色分量');subplot(2,2,4),imshow(F),title('RGB');

3. 位图切割

由于灰度级L=2^k,是由2的次方构成,每个像素值看作是由K个二进制数组成的。于是每个平面k-1,k-2,…,1,0 中的每一个像素值都等于该像素在该平面的项数值。

f=imread('lena.jpg');g=double(f);L1=mod(g,2);L2=mat2gray(mod(g./2,2));L3=mat2gray(mod(g./(2.^2),2)); L4=mat2gray(mod(g./(2.^3),2)); L5=mat2gray(mod(g./(2.^4),2)); L6=mat2gray(mod(g./(2.^5),2)); L7=mat2gray(mod(g./(2.^6),2)); L8=mat2gray(mod(g./(2.^7),2)); figure()subplot(3,3,1);imshow(L1),title('第一层');subplot(3,3,2);imshow(L2),title('第二层');subplot(3,3,3);imshow(L3),title('第三层');subplot(3,3,4);imshow(L4),title('第四层');subplot(3,3,5);imshow(L5),title('第五层');subplot(3,3,6);imshow(L6),title('第六层');subplot(3,3,7);imshow(L7),title('第七层');subplot(3,3,8);imshow(L8),title('第八层');subplot(3,3,9);imshow(f),title('原图');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。