matlab作业 彩色图像读写实验

定义一个函数SubSamp,输入为彩色图像文件名,输出并显示尺寸减半的彩色

图像(原始、水平翻转、垂直翻转、中心区域变红)。必须使用控制语句,在命令窗口成功调用!

因为彩色图像是3维的,黑白图像是2维的。如果我们在对图像尺寸减半时仍然使用

>> f=imread('e:\1.png');
>> f=f(1:2:end,1:2:end);
>> imshow(f);

就会发现出来三个并排排列的灰色图像

所以要在后面再加1维即可

全部代码如下

function [img1,img2,img3,img4]=SubSamp(filename);
img1=imread(filename);
for i=1:4
    figure
    switch i
        case 1
            img1=img1(1:2:end,1:2:end,:);%使图像尺寸减半
            imshow(img1);
        case 2
            img2=img1(end:-1:1,:,:);%使图像水平翻转
            imshow(img2);
        case 3
            img3=img1(:,end:-1:1,:);%使图像垂直翻转
            imshow(img3);
        case 4
            %使图像中心区域100*100变红
            [m,n,t]=size(img1);
            img4=img1;
            img4(m/2-50:m/2+50,n/2-50:n/2+50,1)=255;
            img4(m/2-50:m/2+50,n/2-50:n/2+50,2)=0;
            img4(m/2-50:m/2+50,n/2-50:n/2+50,3)=0;
            imshow(img4);
    end
end

运行结果

时间: 2024-10-07 06:33:01

matlab作业 彩色图像读写实验的相关文章

V3学院带你学习EEPROM读写实验

一.实验背景在消费者电子电讯和工业电子中看上去不相关的设计里经常有很多相似的地方例如几乎每个系统都包括一些智能控制通常是一个单片的微控制器,通用电路例如LCD驱动器远程I/O,RAM,EEPROM或数据转换器,面向应用的电路譬如收音机和视频系统的数字调谐和信号处理电路或者是音频拨号电话的DTM发生器,为了使这些相似之处对系统设计者和器件厂商都得益而且使硬件效益最大电路最简单Philips开发了一个简单的双向两线总线实现有效的IC之间控制这个总线就称为Inter IC或I2C总线现在Philips

[Matlab+C/C++] 读写二进制文件

introduction 由于Matlab操作简单.方便,它被应用于非常多领域:音频处理,图像处理,数值计算等.虽然MATLABeasy操作.但受限于他的语言解释机制.MATLAB的运行速度通常较低.C/C++一般被觉得是运行较为高效的高级程序设计语言. 假设结合MATLAB和C/C++.或许我们能够获得操作简便性和运行速度的折中.这样的结合的一般形式是:MATLAB负责绝大部分工作,C/C++负责一些关键部分的实现.其详细方法在我之前的博文中已经有所介绍. 在处理某些数据的时候,可能涉及到文件

Matlab按照彩色图像去除数据冗余

依据实验结果,确定为对于RGB三个分量,每个分量都做差,然后取二范数,如果其中有一个分量大于0.5,这个结果就保留.这应该是我目前编过的最复杂的Matlab程序了,主要是通过这个程序学习到了matlab结构体的好处,数组和cell在处理大量的数据的时候都太麻烦了.结构体加上数组.cell,才是matlab程序语言设计的保存数据的最好的格式.现在知道了为啥matlab读取视频,保存格式为结构体了.fighting! 1 clear;close all;clc; 2 %% 3 %由于程序运行的时间太

实战作业4,实验环境下Linux主机之间实现跨网段通信

更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 实验目标: 用vmware多台虚拟机模拟,实现主机间的跨网段通信(相互之间能ping通). 实验要求: 主机A 和 主机B 之间实现通信,中间至少跨越3个路由器(linux主机模拟路由器) 准备工作: 至少5台虚拟机. 由于本身只安装了centos6.9,centos7.4,redhat5.4 三台虚拟机,所以临时克

matlab 作业代码

A=imread('e:\1\1.tif');%读入图片“1.tif” B=rgb2gray(A);%将图像转换成灰度图像 subplot(121); imshow(A);%显示原图像 title('原图像');%命名 subplot(122) imshow(B);%显示转换后的灰度图像 title('转化后的灰度图像'); C=imhist(B);%灰度图像直方图 figure(2),imhist(B);%显示 title('灰度图像的直方图'); figure(3),imhist(B); t

MATLAB中文件的读写和数据的导入导出

http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出. 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开.13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中的变量以文件的形式保

作业调度算法

先来先服务.短进程优先算法 一.实验目的 通过使用c对先来先服务.短进程优先算法的实现,进一步理解并掌握调度算法的逻辑过程,以及每种算法分别在进程调度和作业调度中的的处理方法. 二.实验原理 先来先服务:该算法在每次调度中,都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为他们分配资源.创建进程,然后放入就绪队列.在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,位置分配处理机,使之投入运行.该进程一直运行到完成或发生某事件而阻塞后才放

BulkLoop实验

既然OC已经通过USB3.0接口识别了我的FX2LP最小系统,我打算做一下bulkloop例程. 第一步自然是向default FX2LP中写入bulkloop的固件程序: 利用Suite中的USB Control Center程序可以刷写RAM, D:\Cypress\Cypress Suite USB 3.4.7\Firmware\Bulkloop 里面有转换好的固件程序--bulkloop.hex文件. Figure 1 刷写成功(图2)!,设备的名字随着绑定inf文件中的PIDVID的更

Linux 基础入门(新版)(实验一至四)

1.实验一  Lniux简介 操作系统:系统调用+内核 Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺:有全球所有的 Linux 开发者和自由软件社区提供支持 ‘ 2.实验二: 1.实验楼环境介绍 2.常用 Shell 命令及快捷键 3.Linux 使用小技巧 UNIX/Linux 本身是没有图形界面的,我们通常在 Unix/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件. Linux 上你可以