实验七 彩色图像处理

目录

实验目的

实验设备及条件

实验内容

读入两幅彩色图像,并分别显示图像的尺寸信息,裁剪两幅图片为相同的正方形尺寸,并保存为两幅新的图片A和B。

将两幅彩色图像A与B 按照不同的比例 (0.7:0.3, 0.5: 0.5, 0.3:0.7) 相加合成一幅新的图像,并在一个图像窗口中显示原始图像、三个合成图像。

 

将图像从RGB颜色空间转换为灰度空间,分别用加权法、均值法和最大值法、以及matlab自带的函数rgb2gray.

 分别对RGB、CMYK及HSI三种颜色模型的图像进行亮度增强并显示。


  • 实验目的

  1. 掌握彩色图像读入、显示、存储等基本函数的使用方法。
  2. 掌握不同颜色模型及模型间转化的基本理论和实现方法。
  • 实验设备及条件

计算机一台(带有Matlab2015版本以上的软件环境),以及实验所需图片。

  • 实验内容

  • 读入两幅彩色图像,并分别显示图像的尺寸信息,裁剪两幅图片为相同的正方形尺寸,并保存为两幅新的图片A和B。

  • %图像信息显示
    a = imread('apic27858.jpg');
    b = imread('OIP-C.jpg');
    
    [h1,w1] = size(a);
    [h2,w2] = size(b);
    
     figure,subplot(2,2,1),imshow(a),title('866*1950');
     subplot(2,2,2),imshow(b),title('474*1422');

    a,b分别为读入的两张图片,[h1,w1],[h2,w2]为两张图片的长和宽,其值可以在matlab界面左边的工作区找到。

  • %图像裁剪
    min_size = min(h1,h2);    %我这里用较小的那一个高进行裁剪
    A = imcrop(a,[1,1,min_size-1,min_size-1]);
    B = imcrop(b,[1,1,min_size-1,min_size-1]);
    
    subplot(2,2,3),imshow(A),title('裁剪后图像1');
    subplot(2,2,4),imshow(B),title('裁剪后图像2');

  • 将两幅彩色图像A与B 按照不同的比例 (0.7:0.3, 0.5: 0.5, 0.3:0.7) 相加合成一幅新的图像,并在一个图像窗口中显示原始图像、三个合成图像。

  • %图像按照权值叠加
    imgc_1 = imadd(0.7*A,0.3*B);
    imgc_2 = imadd(0.5*A,0.5*B);
    imgc_3 = imadd(0.3*A,0.7*B);
    figure(3),subplot(2,3,1),imshow(a),title('原图1');
    subplot(2,3,2),imshow(b),title('原图2');
    subplot(2,3,4),imshow(imgc_1),title('0.7*0.3');
    subplot(2,3,5),imshow(imgc_2),title('0.5*0.5');
    subplot(2,3,6),imshow(imgc_3),title('0.3*0.7');

  • 将图像从RGB颜色空间转换为灰度空间,分别用加权法、均值法和最大值法、以及matlab自带的函数rgb2gray.

          加权法就是    GRAY=0.3*R+0.59*G+0.11*B
          均值法就是    GRAY= (R+G+B)/3
          最大值发就是  GRAY=  max(R,G,B)

并在一个图像窗口中显示这四个灰度图像,并做讨论。

%图像的三原色
R1 = A(:, :, 1),R2 = B(:,:,1);
G1 = A(:, :, 2),G2 = B(:,:,2);
B1 = A(:, :, 3),B2 = B(:,:,3);
gray_img1 = rgb2gray(A),gray_img2 = rgb2gray(B);
gray_img1_jq = R1*0.3+G1*0.59+B1*0.11,gray_img2_jq = R2*0.3+G2*0.59+B2*0.11; 
gray_img1_jz =(R1+G1+B1)/3,gray_img2_jz = (R2+G2+B2)/3;
gray_img1_zd = max(R1,max(G1,B1)),gray_img2_zd = max(R2,max(G2,B2));
%图像1
figure(4),subplot(2,2,1),imshow(gray_img1),title('图像1rgb2gray灰度图');
subplot(2,2,2),imshow(gray_img1_jq),title('图像1加权灰度图');
subplot(2,2,3),imshow(gray_img1_jz),title('图像1均值灰度图');
subplot(2,2,4),imshow(gray_img1_zd),title('图像1最大值灰度图');
%图像2
figure(5),subplot(2,2,1),imshow(gray_img2),title('图像2rgb2gray灰度图');
subplot(2,2,2),imshow(gray_img2_jq),title('图像2加权灰度图');
subplot(2,2,3),imshow(gray_img2_jz),title('图像2均值灰度图');
subplot(2,2,4),imshow(gray_img2_zd),title('图像2最大值灰度图');

 

 分别对RGB、CMYK及HSI三种颜色模型的图像进行亮度增强并显示。

alpha = 2.0;
%RGB增强
R1_zq1 = min(alpha * R1, 255),G1_zq1 = min(alpha * G1,255),B1_zq1 = min(alpha * B1,255);
RGB1 = cat(3, R1_zq1, G1_zq1, B1_zq1);
R2_zq1 = min(alpha * R2, 255),G2_zq1 = min(alpha * G2,255),B2_zq1 = min(alpha * B2,255);
RGB2 = cat(3, R2_zq1, G2_zq1, B2_zq1);
figure(6),subplot(2,4,1),imshow(A),title('原图1'),subplot(2,4,2),imshow(B),title('原图2'),
subplot(2,4,3),imshow(RGB1),title('图像1rgb增强图像'),subplot(2,4,4),imshow(RGB2),title('图像2rgb增强图像');

%CMYK增强
CMYK1 = 2*imcomplement(A),CMYK2 = 2*imcomplement(B);
subplot(2,4,5),imshow(CMYK1),title('图像1 cmyk增强图像'),subplot(2,4,6),imshow(CMYK2),title('图像2 cmyk增强图像');

% HSI增强
HSI1 = 2*rgb2hsv(A),HSI2 = 2*rgb2hsv(B);
subplot(2,4,7),imshow(HSI1),title('图像1 HSI增强图像'),subplot(2,4,8),imshow(HSI2),title('图像2 HSI增强图像');

 

 我这里将增强的图像放到一起,如果觉得不好看可以将图像放到多个窗口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值