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

news2024/9/23 15:27:29

一、基础知识

经过前面的实验可以得知,彩色图像中的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.59G+0.11*B
    均值法就是 GRAY= (R+G+B)/3
    最大值发就是 GRAY= max(R,G,B)
    并在一个图像窗口中显示这四个灰度图像,并做讨论。
  4. 分别对RGB、CMYK及HSI三种颜色模型的图像进行亮度增强并显示。

三、实验记录

任务1:

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

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) 相加合成一幅新的图像,并在一个图像窗口中显示原始图像、三个合成图像。

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.

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三种颜色模型的图像进行亮度增强并显示。

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.59G+0.11*B
均值法就是 GRAY= (R+G+B)/3
最大值发就是 GRAY= max(R,G,B)
并在一个图像窗口中显示这四个灰度图像,并做讨论:
在这里插入图片描述

任务4:

分别对RGB、CMYK及HSI三种颜色模型的图像进行亮度增强并显示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1440562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 获取、创建 stream 流操作对象的几种方法

Java 获取、创建 stream 流操作对象的几种方法 package com.zhong.streamdemo.createstreamdemo;import java.util.*; import java.util.stream.Stream;/*** ClassName : CreateStream* Description : 创建 stream 操作对象* Author : zhx* Date: 2024-02-08 13:10*/ public c…

查看网络配置的ipconfig命令

ipconfig是调试计算机网络的常用命令,通常大家使用它显示计算机中网络适配器的IP地址、子网掩码及默认网关。其实这只是ipconfig的不带参数用法,而它的带参数用法,在网络中应用也是相当不错的。 1.语法 ipconfig [/all] [/renew[Adapter]] [/…

分布式springboot 3项目集成mybatis官方生成器开发记录

文章目录 说明实现思路实现步骤第一步:创建generator子模块第二步:引入相关maven插件和依赖第三步:编写生成器配置文件第四步:运行查看结果 说明 该文章为作者开发学习记录,方便以后复习和交流主要内容为:…

《游戏引擎架构》 -- 学习2

声明,定义,以及链接规范 翻译单元 声明与定义 链接规范 C/C 内存布局 可执行映像 程序堆栈 动态分配的堆 对象的内存布局 kilobyte 和 kibibyte 流水线缓存以及优化 未完待续。。。

AOP相关

AOP相关 什么是AOP? 常见的场景 记录操作日志 缓存处理 spring内置事务处理 AOP记录操作日志 定义切点表达式,确定要记录的方法 找到方法中有log注解的方法 获得方法 获得方法的参数 spring中的事务实现 spring中的事务分声明式事务和编程式事务…

[word] word表格表头怎么取消重复出现? #媒体#笔记#职场发展

word表格表头怎么取消重复出现? word表格表头怎么取消重复出现?在Word中的表格如果过长的话,会跨行显示在另一页,如果想要在其它页面上也显示表头,更直观的查看数据。难道要一个个复制表头吗?当然不是&…

使用GDI画图片生成合成图片并调用打印机进行图片打印

使用GDI画图片生成合成图片并调用打印机进行图片打印 新建窗体应用程序PrinterDemo,将默认的Form1重命名为FormPrinter,添加对 Newtonsoft.Json.dll用于读写Json字符串 zxing.dll,zxing.presentation.dll用于生成条形码,二维码…

STM32内存管理

一.什么是内存管理 内存管理是计算机系统中的一个重要组成部分,它负责管理计算机的内存资源。内存管理的主要目标是有效地分配、使用和释放内存,以满足程序的运行需求。 内存是计算机用于存储程序和数据的地方,它由一系列内存单元组成&#…

Java后端技术助力,党员学习平台更稳定

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

mysql按周统计数据简述

概述 业务中经常会遇到按年月日统计的场景; 但有时会有按周统计的情况; 我一般是用3种方法去解决: 利用mysql的weekday函数。计算出当前日期是一周中的第几天,然后当前日期 - 这个数值,就可以得到当前周的周一的日期…

停车场|基于Springboot的停车场管理系统设计与实现(源码+数据库+文档)

停车场管理系统目录 目录 基于Springboot的停车场管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能实现 (1)车位管理 (2)车位预订管理 (3)公告管理 (4&#…

分布式系统架构介绍

1、为什么需要分布式架构? 增大系统容量:单台系统的性能瓶颈,多台机器才能应对大规模的应用场景,所以就需要我们的应用支撑平台具备分布式架构。 加强系统的可用:为了满足业务的SLA要求,需要通过分布式架构…

汇编笔记 01

小蒟蒻的汇编自学笔记,如有错误,望不吝赐教 文章目录 笔记编辑器,启动!debug功能CS & IPmovaddsub汇编语言寄存器的英文全称中英对照表muldivandor 笔记 编辑器,启动! 进入 debug 模式 debug功能 …

C语言:分支与循环

创造不易,友友们给个三连吧!! C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分…

SQL拆分字段内容(含分隔符)

问题描述: 在做数据迁移的过程中,我们希望对表中的某个字段根据分隔符进行拆分,得到多条数据,原代码有点意思,因此记录一下。 我们假设某条数据如下: IDSTRS1公司名称不能小于四个字,行业类别…

春运也要“信号升格”:中兴通讯助运营商打造高铁精品网

一年一度的春运,承载了游子的思乡情。据官方预计,今年春运跨区域人员流动量将达到90亿人次,创下历史新高,铁路、公路、水路、民航等营业性客运量全面回升,其中铁路预计发送旅客4.8亿人次,日均1200万人次&am…

网络设备如何巡检?这些命令必不可少

一、查看交换机的端口使用情况: dis interface brief查看交换机的哪个端口是万兆端口,以及端口状态,那个端口在使用。 如下图,使用这个命令。 其中端口0/0/1与端口0/0/2处于使用中。其它接口没有使用;如果在实际项目…

[Python进阶] 制作动态二维码

11.1 制作动态二维码 二维码(QR code)是一种二维条形码(bar code),它的起源可以追溯到20世纪90年代初。当时,日本的汽车工业开始使用一种被称为QR码的二维条码来追踪汽车零部件的信息。 QR码是Quick Respo…

机器人学、机器视觉与控制 上机笔记(第一版译文版 2.1章节)

机器人学、机器视觉与控制 上机笔记(第一版译文版 2.1章节) 1、前言2、本篇内容3、代码记录3.1、新建se23.2、生成坐标系3.3、将T1表示的变换绘制3.4、完整绘制代码3.5、获取点*在坐标系1下的表示3.6、相对坐标获取完整代码 4、结语 1、前言 工作需要&a…

JRebel激活-nginx版本

nginx转发流量(代替其他网上说的那个工具) proxy_pass http://idea.lanyus.com; 工具激活 填写内容说明: 第一行的激活网址是:http://127.0.0.1:8888/ 正确的GUID。GUID 可以通过专门的网站来生成(点击打开&#…