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

一、基础知识

经过前面的实验可以得知,彩色图像中的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三种颜色模型的图像进行亮度增强并显示:

相关推荐
AI的探索之旅17 小时前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
美狐美颜SDK开放平台17 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
词却20 小时前
OpenCV学习:CNN 人脸检测
opencv
拉你进_教堂20 小时前
小龙虾技能之【Parkinson‘s & Epileptic Behavior Recognition Skill | 帕金森癫痫行为识别技能】简介
人工智能·计算机视觉·多模态大模型·openclaw小龙虾技能
PascalXie21 小时前
人形机器人的“眼睛“:多目视觉方案怎么选?
计算机视觉·机器人
普密斯科技21 小时前
替代传统影像仪,摄像头磨切片测量新方案实测
计算机视觉·集成测试·测量
yyk333241 天前
OpenCV中的疲劳检测
opencv
宿州派大星1 天前
【Python实战】:基于 OpenCV + dlib 的传统换脸术原理与实战
opencv·python3.11·dlib
陈年老古董1 天前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
YOLO数据集集合1 天前
天空红外小目标检测数据集 | 红外小目标 天空目标检测 无人机检测 鸟类识别 低空安防9099期
人工智能·目标检测·计算机视觉·目标跟踪·无人机·无人机视角·直升机检测