MATLAB画图分辨率、图像大小研究

MATLAB画图分辨率、图像大小研究

  • Figure属性中 InnerPosition Position OuterPosition区别
  • 画图与打印的分辨率和图像大小研究
    • 首先明确两个概念:
    • MATLAB实操画图

Figure属性中 InnerPosition Position OuterPosition区别

在画图的时候,我们经常需要设置Figure属性,其中就有三个属性是有关图像大小的。

在这里插入图片描述

通过测试和查阅资料,他们三者之间的区别可以这么概括:

Position和InnerPosition没有区别,不包括边框、菜单栏、工具栏和标题栏等的大小
OuterPosition则是包括了边框,菜单栏、工具栏和标题栏的大小。

如下图所示,蓝色框是InnerPosition或Position,红色框是OuterPosition。
由于我们画图的最终结果是不需要边框、菜单栏、工具栏的,所以我们一般设置InnerPosition或Position,而不去设置OuterPosition

在这里插入图片描述

画图与打印的分辨率和图像大小研究

首先明确两个概念:

一、对于一个已经确定的jpg或者png格式的图像:

  1. 当图像的大小单位“像素” 时,像素数永远是恒定的;
  2. 当图像的大小是cm inch这种单位时,其cm数或者inch数是变化的,这与系统分辨率、或者打印分辨率有关。

例如一个图像的大小以像素为单位时,是 300 × 300 300\times300 300×300
那么假设打印分辨率是300dpi,那么打印出来的图像大小就是 1 inch × 1 inch 1 \text{inch} \times1\text{inch} 1inch×1inch
假设打印分辨率是600dpi,那么打印出来的图像大小就是 0.5 inch × 0.5 inch 0.5 \text{inch} \times0.5\text{inch} 0.5inch×0.5inch


二、在使用MATLAB画图的时候,使用不同的分辨率保存图像,保存的分辨率不同,生成图像的像素数也就不同。(MATLAB画出来的图可以看作矢量图,保存的图像是位图,这个保存的过程可以看作矢量图向位图转换)

例如使用MATLAB画了一个 10 inch × 10 inch 10\text{inch}\times10\text{inch} 10inch×10inch的图,如果用 96 96 96dpi来打印成jpg格式,那么打印出来的图的大小就是 960 × 960 960\times960 960×960像素,如果用 192 192 192dpi来打印成jpg格式,那么打印出来的图的大小就是 1920 × 1920 1920\times1920 1920×1920像素


这两个概念对我们画图确定图像大小时至关重要。

MATLAB实操画图

在使用MATLAB画图的时候,最终输出的图像大小与画图时候设置打印输出设置二者有关。
画图时候设置也就是设置Figure对象的Position
打印输出设置也就是使用print函数时候调用的分辨率参数,例如'-r96'表示以96dpi分辨率打印。

举个例子:

这种情况下,使用设置Figure对象的Position的像素值为 800 × 600 800\times600 800×600,设置的打印分辨率是96dpi

clear

x = 0:0.01:2*pi;
y = sin(x);

% 创建一个新的图形窗口
fig = figure;
plot(x,y)

dpi = 96;

fig.Units = "pixels";
fig.Position = [100, 100, 800, 600]; % 设置图形窗口的位置和大小
fig.Color = [1, 1, 1]; % 设置图形窗口的背景颜色为白色

print(fig, 'saved_figure1.jpg', '-djpeg', ['-r', num2str(dpi)]);

最终输出的图像大小像素值就是 800 × 600 800\times600 800×600,通过查看图像属性,发现确实如此:

在这里插入图片描述

如果我想以更高的分辨率打印,那么结果如何?请看下面的例子:

此时使用设置Figure对象的Position的像素值仍然为 800 × 600 800\times600 800×600,但是打印分辨率变成了600dpi。

clear

x = 0:0.01:2*pi;
y = sin(x);

% 创建一个新的图形窗口
fig = figure;
plot(x,y)

dpi = 600;

fig.Units = "pixels";
fig.Position = [100, 100, 800, 600]; % 设置图形窗口的位置和大小
fig.Color = [1, 1, 1]; % 设置图形窗口的背景颜色为白色

print(fig, 'saved_figure1.jpg', '-djpeg', ['-r', num2str(dpi)]);

此时查看图片属性,发现如下此时宽度为 5000 5000 5000像素,高度为 3750 3750 3750像素,而且分辨率仍然是96dpi,和设置的完全不一样这是咋回事?
在这里插入图片描述

我的理解是这样:

  1. 首先,画图时候设置宽和高分别是 800 800 800 600 600 600像素,由于windows系统一个像素是1/96inch,所以,画出来的矢量图的大小就是 800 ÷ 96 = 8.33 800\div96=8.33 800÷96=8.33inch宽和 600 ÷ 96 = 6.25 600\div96=6.25 600÷96=6.25inch高。(MATLAB画的是矢量图,矢量图不存在分辨率、像素这种说法,只有多少inch大小这种说法;而画图时候设置的像素只是为了确定这个矢量图的inch大小)。

  2. 然后,由于以600dpi进行打印,那么打印出来的像素数就是 8.33 × 600 = 5000 8.33\times600=5000 8.33×600=5000宽和 6.25 × 600 = 3750 6.25\times600=3750 6.25×600=3750高。所以打印得到的图像的 5000 5000 5000 3750 3750 3750是这么来的。

那么为什么这里分辨率还是96dpi?而不是600dpi?
因为这里600dpi只是用来打印,确定jpg图的像素数的,而windows系统分辨率默认是96dpi,所以这里仍然是显示96dpi。这就与前面提到的第一个概念“确定图像的像素数恒定不变,但是大小、分辨率会随着系统、打印分辨率而变化”是一致的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—142.环形链表II【中等】

2023每日刷题(三十三) Leetcode—142.环形链表II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* …

python中sklearn库在数据预处理中的详细用法,及5个常用的Scikit-learn(通常简称为 sklearn)程序代码示例

文章目录 前言1. 数据清洗:使用 sklearn.preprocessing 中的 StandardScaler 和 MinMaxScaler 进行数据规范化。2. 缺失值处理:使用 sklearn.impute 中的 SimpleImputer 来填充缺失值。3. 数据编码:使用 sklearn.preprocessing 中的 OneHotEn…

【左程云算法全讲13】暴力递归

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于左程云算法课程进行的,每个知识点的修正和深入主要参考…

Springboot集成JDBC

1&#xff0c;pom.xml配置jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> 2&#xff0c;配置数据源信息 server:port: 8088spring:datasource:dr…

AI智剪:批量剪辑实战,技巧与实例

随着人工智能技术的不断发展&#xff0c;越来越多的领域开始应用AI技术提升工作效率和质量。其中&#xff0c;AI智剪技术在视频剪辑领域的应用也越来越广泛。AI智剪是一种基于人工智能技术的视频剪辑方法&#xff0c;通过机器学习算法对视频进行自动分析和处理&#xff0c;实现…

AIGC创作系统ChatGPT源码,AI绘画源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

TCP协议相关实验

文章目录 一.TCP相关实验1.理解CLOSE_WAIT状态2.理解TIME_WAIT状态3.解决TIME_WAIT状态引起的bind失败的方法4.理解listen的第二个参数5.使用Wireshark分析TCP通信流程 二.TCP与UDP1.TCP与UDP对比2.用UDP实现可靠传输&#xff08;经典面试题&#xff09; 一.TCP相关实验 1.理解…

操作系统·进程同步

进程同步&#xff1a;异步环境下的一组并发进程因直接制约而互相发送消息、互相合作、互相等待&#xff0c;使得各进程按照一定的速度执行的过程。 进程同步的主要任务是使并发执行的诸进程之间能有效地共享资源和相互合作&#xff0c;使执行的结果具有可再现性。 4.1 进程同…

LeetCode——字符串(Java)

字符串 简介[简单] 344. 反转字符串[简单] 541. 反转字符串 II[中等] 151. 反转字符串中的单词 简介 记录一下自己刷题的历程以及代码。写题过程中参考了 代码随想录。会附上一些个人的思路&#xff0c;如果有错误&#xff0c;可以在评论区提醒一下。 [简单] 344. 反转字符串…

9 STM32标准库函数 之 独立看门狗(IWDG)所有函数的介绍及使用

9 STM32标准库函数 之 独立看门狗&#xff08;IWDG&#xff09;所有函数的介绍及使用 1. 图片有格式该文档修改记录&#xff1a;总结 函数描述格式&#xff1a; 函数名外设函数的名称函数原形原形声明功能描述简要解释函数是如何执行的输入参数{x}输入参数描述输出参数{x}输出…

sqli-labs关卡20(基于http头部报错盲注)通关思路

文章目录 前言一、回顾上一关知识点二、靶场第二十关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的平台&#xff0c;不能随意去尚…

HLS基础issue

hls 是一个用C/c 来开发PL &#xff0c;产生rtl的工具 hls是按照rtl code来运行的 &#xff0c; 但是rtl会在不同器件调用不同的源语&#xff1b; 可能产生的ip使用在vivado另外一个器件的话 会存在问题&#xff1b; Hls &#xff1a; vivado ip &#xff0c; vitis kernel 是…

Os-hackNos-1

Os-hackNos-1 一、主机发现和端口扫描 主机发现 arp-scan -l端口扫描 nmap -P 192.168.80.141二、信息收集 访问80端口&#xff0c;可知目标是ubuntu系统&#xff0c;中间件是Apache 目录扫描&#xff0c;发现两个路径 dirsearch -u http://192.168.80.141/ -e *index.html路…

VPN创建连接 提示错误 628: 在连接完成前,连接被远程计算机终止。

提示错误 628: 在连接完成前&#xff0c;连接被远程计算机终止。 需要把这个地址配置一下&#xff1a; VPN类型&#xff1a;点对点PPTP 数据加密&#xff1a;如果没有加密的话&#xff0c; 要把这个选一下。

这个双11,阿里云经历了可能是历史级的大故障!

2023年11月12日17&#xff1a;44开始&#xff0c;阿里云发生严重故障&#xff0c;导致阿里巴巴大量产品无法连接&#xff0c;一时间&#xff0c;“阿里云盘崩了”、“淘宝又崩了”、“闲鱼崩了”、“钉钉崩了”等话题相继登上热搜。 此外&#xff0c;像纳思云充电桩、乐爽coole…

初识Linux:目录的创建销毁

目录 ​编辑 提示&#xff1a;以下指令均在Xshell 7 中进行 零、桌面的本质 &#x1f4bb; 扩展&#x1f387;&#xff1a; 一、cd指令&#xff1a; 1、cd - &#xff1a; 2、cd ~&#xff1a; 重命名命令&#xff1a;alias 二、stat指令 冷知识&#xff1a; 如果…

Python编程技巧 – 对象和类

Python编程技巧 – 对象和类 Python Programming Skills – Object and Class Python是一种面向对象的高级程序语言。 本文简要介绍用Python如何实现面向对象&#xff0c;对象和类的声明及使用&#xff0c;以及面向对象的特征&#xff0c;及其如何使用属性和方法的介绍&#x…

Windows上搭建一个网站(基本生产环境)

前言 本博客记录的是Windows上一次网站搭建的过程&#xff0c;主要是在前端采用的是React&#xff0c;后端采用的是Flask&#xff0c;记录一下生产版本搭建流程和坑点&#xff0c;供有缘人一起进步&#xff0c;当然本博客还存在很多不足。 前端项目构建生产版本 以React为例…

IPv4数据报格式

IPv4是IP协议的第四个版本(版本1-3和版本5都未曾使用过)IP地址不能反映任何有关主机位置的地理信息以前还有个逆地址解析协议RAPR(Reverse APR)&#xff0c;它的作用是使只知道自己MAC地址的主机能通过RAPR找到其IP地址&#xff0c;而现在的DHCP(Dynamic Host Configuration Pr…

智慧城市指挥中心,大屏幕究竟有什么用?

目前很多地区有在兴建智慧城市的项目&#xff0c;其城市指挥中心内一般都建有一张巨大的屏幕&#xff0c;这张屏幕究竟有什么用&#xff1f;是否可以用普通的电脑显示器进行代替呢&#xff1f; 智慧城市指挥中心内的巨大屏幕是智慧城市项目中的重要组成部分&#xff0c;其作用不…