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

一、基础知识

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

相关推荐
武子康1 小时前
AI研究-116 特斯拉 HW3.0 与 HW4.0 区别详解:摄像头分辨率、FSD算力、雷达与Vision泊车
人工智能·深度学习·计算机视觉·ai·自动驾驶·汽车·视觉检测
Mrliu__1 小时前
Opencv(六) : 颜色识别
人工智能·opencv·计算机视觉
努力犯错2 小时前
Google Veo 3.1 提示词生成器:让 AI 视频创作效率翻倍的免费工具
人工智能·计算机视觉·语言模型·开源·音视频
武子康3 小时前
AI研究-117 特斯拉 FSD 视觉解析:多摄像头 - 3D占用网络 - 车机渲染,盲区与低速复杂路况安全指南
人工智能·科技·计算机视觉·3d·视觉检测·特斯拉·model y
AndrewHZ4 小时前
【图像处理基石】如何在图像中实现光晕的星芒效果?
图像处理·opencv·计算机视觉·cv·图像增强·算法入门·星芒效果
你也渴望鸡哥的力量么4 小时前
基于边缘信息提取的遥感图像开放集飞机检测方法
人工智能·计算机视觉
sali-tec6 小时前
C# 基于halcon的视觉工作流-章54-N点标定
开发语言·图像处理·算法·计算机视觉·c#
深度学习lover9 小时前
<项目代码>yolo织物缺陷识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·织物缺陷识别·项目代码
夕阳染色的坡道10 小时前
LineSlam线特征投影融合(Fuse) 中pML->GetLineNormalVector()的理解代码理解
人工智能·opencv·计算机视觉
音视频牛哥12 小时前
RTMP/RTSP/WebRTC/SRT/HLS/DASH/GB28181/WebTransport/QUIC协议规范深度分析
人工智能·计算机视觉·音视频·webrtc·大牛直播sdk·dash·webtransport