数字图像处理实验记录七(彩色图像处理实验)

一、基础知识

经过前面的实验可以得知,彩色图像中的RGB图像就是一个三维矩阵,有3个维度,它们分别存储着R元素,G元素,B元素的灰度信息,最后将它们合起来,便是彩色图像。

这一次实验涉及CMYK和HSI颜色模型,不妨搜索一下:

CMYK:CMYK颜色模型包括青(cyan)、品红(magenta)、黄(yellow)和黑(black),为避免与Blue混淆,黑色用K表示。彩色打印、印刷等应用领域采用打印墨水、彩色涂料的反射光来显现颜色,是一种减色方式。

HSI:HSI〔Hue-Saturation-Intensity(Lightness),HSI或HSL〕颜色模型用H、S、I三参数描述颜色特性,其中H定义颜色的频率,称为色调;S表示颜色的深浅程度,称为饱和度;I表示强度或亮度。

二、实验要求

  1. 读入两幅彩色图像,并分别显示图像的尺寸信息,裁剪两幅图片为相同的正方形尺寸,并保存为两幅新的图片A和B。
  2. 将两幅彩色图像A与B 按照不同的比例 (0.7:0.3, 0.5: 0.5, 0.3:0.7) 相加合成一幅新的图像,并在一个图像窗口中显示原始图像、三个合成图像。
  3. 将图像从RGB颜色空间转换为灰度空间,分别用加权法、均值法和最大值法、以及matlab自带的函数rgb2gray.
    加权法就是 GRAY=0.3R+0.59 G+0.11*B
    均值法就是 GRAY= (R+G+B)/3
    最大值发就是 GRAY= max(R,G,B)
    并在一个图像窗口中显示这四个灰度图像,并做讨论。
  4. 分别对RGB、CMYK及HSI三种颜色模型的图像进行亮度增强并显示。

三、实验记录

任务1:

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

matlab 复制代码
figure('NumberTitle','off','Name','图像裁剪并保存');
I1 = imread('山.png');
I2 = imread('stone.jpg');
I = I1;


rect=[0,0,200,190];           %定义剪切区域
X1=imcrop(I1,rect);              %进行图像剪切
X2=imcrop(I2,rect);

subplot(221),imshow(I1); %显示原图像
rectangle('Position',rect,'LineWidth',2,'EdgeColor','r') %显示图像剪切区域
subplot(222),imshow(X1);   %显示剪切的图像    
imwrite(X1,'图片1.png');

subplot(223),imshow(I2); %显示原图像
rectangle('Position',rect,'LineWidth',2,'EdgeColor','r') %显示图像剪切区域
subplot(224),imshow(X2);   %显示剪切的图像 
imwrite(X2,'图片2.png');

任务2:

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

matlab 复制代码
figure('NumberTitle','off','Name','图像合成');
I1 = 0.7*X1+0.3*X2;
I2 = 0.5*X1+0.5*X2;
I3 = 0.3*X1+0.7*X2;
subplot(2,2,1);imshow(X1);title('原图1');
subplot(2,2,2);imshow(X2);title('原图2');
subplot(2,3,4);imshow(I1);title('0.7:0.3 合成');
subplot(2,3,5);imshow(I2);title('0.5:0.5 合成');
subplot(2,3,6);imshow(I3);title('0.3:0.7 合成');

任务3:

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

matlab 复制代码
figure('NumberTitle','off','Name','灰度转换');
% imshow(I);
I1 = rgb_gray(I,1);
I2 = rgb_gray(I,2);
I3 = rgb_gray(I,3);
I4 = rgb2gray(I);
subplot(2,2,1);imshow(I1);title('加权法');
subplot(2,2,2);imshow(I2);title('均值法');
subplot(2,2,3);imshow(I3);title('最大法');
subplot(2,2,4);imshow(I4);title('自带函数法');

任务4:

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

matlab 复制代码
figure('NumberTitle','off','Name','亮度增强');
I = imread('stone.jpg');
R = I(:, :, 1);
G = I(:, :, 2);
B = I(:, :, 3);
a = 2.0;

% rgb亮度增强
I1 = cat(3,a*R,a*G,a*B);

I1 = uint8(I1);
I = uint8(I);

% CMYK亮度增强
I2 = a*imcomplement(I);

% HSI亮度增强
I3 = rgb2hsv(I);
I3(:,:,3) = a*I3(:,:,3);

subplot(1,3,1);imshow(I1);title('RGB亮度增强');
subplot(1,3,2);imshow(I2);title('CMYK亮度增强');
subplot(1,3,3);imshow(I3);title('HSI亮度增强');

四、实验结果

任务1:

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

任务2:

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

任务3:

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

加权法就是 GRAY=0.3R+0.59 G+0.11*B

均值法就是 GRAY= (R+G+B)/3

最大值发就是 GRAY= max(R,G,B)

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

任务4:

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

相关推荐
加油吧zkf1 小时前
Conda虚拟环境管理:从入门到精通的常用命令
图像处理·深度学习·计算机视觉·conda
小宋0012 小时前
使用LLaMA-Factory微调Qwen2.5-VL-3B 的目标检测任务-数据集格式转换(voc 转 ShareGPT)
人工智能·目标检测·计算机视觉
小哥谈3 小时前
论文解析篇 | YOLOv12:以注意力机制为核心的实时目标检测算法
人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
小宋0013 小时前
在Ubuntu上安装配置 LLaMA-Factory
ubuntu·计算机视觉
PyAIExplorer3 小时前
图像处理中的边缘填充:原理与实践
图像处理·人工智能
HollowKnightZ4 小时前
论文阅读笔记:VI-Net: Boosting Category-level 6D Object Pose Estimation
人工智能·深度学习·计算机视觉
Shilong Wang4 小时前
三维旋转沿轴分解
算法·计算机视觉·机器人
Hoshino _Ai5 小时前
OpenCV图像认知(三)
人工智能·opencv·计算机视觉
Jamence6 小时前
多模态大语言模型arxiv论文略读(155)
论文阅读·人工智能·计算机视觉·语言模型·论文笔记
azoo7 小时前
Canny边缘检测(cv2.Canny())
人工智能·opencv·计算机视觉