html5图像映射坐标怎么看,如何将AxesImage中的坐标映射到已保存图像文件中的坐标?...

这是尝试从matplotlib获取精确像素值的更令人困惑的部分之一. Matplotlib将绘制精确像素值的渲染器与绘制图形和轴的画布分开.

基本上,最初创建(但尚未显示)图形时存在的渲染器不一定与显示图形或将其保存到文件时使用的渲染器相同.

你正在做的是正确的,但是它使用的是初始渲染器,而不是保存图形时使用的渲染器.

为了说明这一点,这里是您的代码的略微简化版本:

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111)

im = ax.imshow(np.random.random((27,27)), interpolation='nearest')

for i in range(28):

x, y = ax.transData.transform_point([i,i])

print '%i, %i' % (x, fig.bbox.height - y)

fig.savefig('foo.png', dpi=fig.dpi)

这会产生与上面相似的结果:(差异是由于您的机器和我的机器之间的渲染后端不同)

89, 55

107, 69

125, 83

...

548, 410

566, 424

585, 439

但是,如果我们做同样的事情,而是在显示坐标之前绘制图形,我们得到正确的答案!

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111)

im = ax.imshow(np.random.random((27,27)), interpolation='nearest')

fig.canvas.draw()

for i in range(28):

x, y = ax.transData.transform_point([i,i])

print '%i, %i' % (x, fig.bbox.height - y)

fig.savefig('foo.png', dpi=fig.dpi)

这产生:(记住,数字的边缘在数据坐标中是< -0.5,-0.5>而不是< 0,0>.(即绘制图像的坐标是以像素为中心的).是为什么< 0,0>得到143,55,而不是135,48)

143, 55

157, 69

171, 83

...

498, 410

512, 424

527, 439

当然,绘制图形只是为了在保存时再次绘制它是多余的并且计算成本很高.

为避免两次绘制,可以将回调函数连接到绘图事件,并在此函数中输出HTML图像映射.作为一个简单的例子:

import numpy as np

import matplotlib.pyplot as plt

def print_pixel_coords(event):

fig = event.canvas.figure

ax = fig.axes[0] # I'm assuming there's only one subplot here...

for i in range(28):

x, y = ax.transData.transform_point([i,i])

print '%i, %i' % (x, fig.bbox.height - y)

fig = plt.figure()

ax = fig.add_subplot(111)

im = ax.imshow(np.random.random((27,27)), interpolation='nearest')

fig.canvas.mpl_connect('draw_event', print_pixel_coords)

fig.savefig('foo.png', dpi=fig.dpi)

这样可以产生正确的输出,同时只保存一次,保存时:

143, 55

157, 69

171, 83

...

498, 410

512, 424

527, 439

另一个优点是你可以在调用fig.savefig时使用任何dpi,而无需事先手动设置无花果对象的dpi.因此,当使用回调函数时,你可以只做fig.savefig(‘foo.png’),(或fig.savefig(‘foo.png’,dpi = what))你会获得与保存匹配的输出.png文件. (保存图形时的默认dpi为100,而图形对象的默认dpi为80,这就是为什么必须首先指定dpi与fig.dpi相同)

希望这至少有点清楚!

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

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

相关文章

vue获取元素距离页面顶部的距离_VUE实时监听元素距离顶部高度的操作

效果图如下所示.html今日热门今日热销.jsmounted(){window.addEventListener(scroll,this.handleScrollx,true)},methods: {handleScrollx() {console.log(滚动高度,window.pageYOffset)console.log(距离顶部高度,this.$refs.pronbit.getBoundingClientRect().top)},}补充知识&…

鸿蒙首饰用什么合成,天下HD鸿蒙炼炉是什么?鸿蒙炼炉讲解

在玩天下HD的时候各位又是否知道鸿蒙炼炉是什么呢&#xff1f;其实鸿蒙炼炉是游戏之中一个很重要的系统&#xff0c;而对于这个系统本次小编就给各位带来了鸿蒙炼炉讲解。或许各位都有用到天下HD的鸿蒙炼炉系统&#xff0c;但是各位又是否了解鸿蒙炼炉系统是怎么样的呢&#xf…

如何区分网线是几类的_小移课堂 | 网线这样选,网速才能嗖嗖的!

在家宅到长蘑菇的日子里最亲近的&#xff0c;除了家人&#xff0c;就是WiFi想必大家碰上网速不好的时候都会很抓狂为什么家里的网络明明签约的是千兆可网速一直上不去?网线&#xff0c;是卡住网速的关键因素&#xff01;问网线不是通用的吗&#xff1f;还要用专门的网线吗&…

navicat premium 链接postgresql 无法加载表_PostgreSQL 每周新闻 2020311

PostgreSQL 每周新闻 2020-3-11英文原文地址&#xff1a;https://postgresweekly.com/issues/346Postgres子事务和性能本文展示了过度使用子事务对性能的影响&#xff0c;以及如何诊断在您的数据库里是否有这样的问题。Laurenz AlbePostgreSQL匿名器0.6&#xff1a;假名化和改进…

python无法打开_如何解决Windows命令行无法运行python文件?

我在使用windows的命令行运行python文件&#xff0c;但是每次出现的都是这种情况我设置了Path&#xff0c;D:Python&#xff0c;后来又设置了个PythonPath&#xff0c;添加了Lib和DLLS的路径&#xff0c;但是没用。 我觉得还是设置环境变量的问题&#xff0c;请问大家有什么办法…

iis7设置html支持asp,Win7下启用IIS7配置ASP运行环境的详细方法

第一次在windows7下配置IIS&#xff0c;虽然有丰富的xp下配置IIS的经验&#xff0c;但还是会遇到不少的问题。特别是对入门者来说&#xff0c;搞清一些东西还是挺费时间的。其实win7下的IIS7配置过程是非常简单的。下面让seo博客来详细的介绍一下win7下配置IIS7环境运行ASP网站…

java 手写阻塞队列_Java阻塞队列的实现

阻塞队列与普通队列的区别在于&#xff0c;当队列是空的时&#xff0c;从队列中获取元素的操作将会被阻塞&#xff0c;或者当队列是满时&#xff0c;往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞&#xff0c;直到其他的线程往空的队列插入新…

python语句解释_深入理解python with 语句

深入理解python with 语句 python中with 语句作为try/finally 编码范式的一种替代, 适用于对资源进行访问的场合&#xff0c;确保不管使用过程中是否发生异常都会执行必要的”清理”操作&#xff0c;释放资源&#xff0c;比如文件使用后自动关闭、线程中锁的自动获取和释放等 1…

js怎么设置z index.html,HTML5 Canvas set z-index

j0kEli Stone提出了一个问题&#xff1a;HTML5 Canvas set z-index&#xff0c;或许与您遇到的问题类似。回答者markE给出了该问题的处理方式&#xff1a;Yes..kind of yes. You can use compositing to "draw behind" existing pixels.ctx.globalCompositeOperation…

python搭建分布式集群_Spark完全分布式集群搭建【Spark2.4.4+Hadoop3.2.1】

一.安装Linux需要&#xff1a;3台CentOS7虚拟机注意&#xff1a;虚拟机的网络设置为NAT模式&#xff0c;NAT模式可以在断网的情况下连接上虚拟机而桥架模式不行&#xff01;二.设置静态IP跳转目录到&#xff1a;修改IP设置&#xff1a;备注&#xff1a;执行scp命令拷贝设置文件…

ajax post提交数据_详解Ajax异步加载

前言&#xff1a;作为资深球迷&#xff0c;提起Ajax&#xff0c;第一反应想到的是阿贾克斯&#xff0c;那个曾培养出伊布&#xff0c;范德法特&#xff0c;苏亚雷斯&#xff0c;亨特拉尔等一众球星的荷甲著名球队。很显然&#xff0c;我们今天说的Ajax&#xff0c;跟足球没有任…

win10改计算机用户名,win10系统修改本地账号用户名的操作方法

很多小伙伴都遇到过对win10系统修改本地账号用户名进行设置的困惑吧&#xff0c;一些朋友看过网上对win10系统修改本地账号用户名设置的零散处理方法&#xff0c;并没有完完全全明白win10系统修改本地账号用户名的操作方法非常简单&#xff0c;只需要1、首先打开Win10控制面板&…

2020 ccf推荐中文期刊_CCF推荐国际学术期刊

中国计算机学会推荐国际学术期刊(计算机系统与高性能计算)一、A类序号刊物简称刊物全称出版社网址1TOCSACM Transactions on Computer SystemsACM2TOCIEEE Transactions on ComputersIEEE3TPDSIEEE Transactions on Parallel and DistributedSystemsIEEE二、B类序号刊物简称刊物…

假设以带头结点的循环链表表示队列_关于反转链表,看这一篇就够了!

本期例题&#xff1a;LeetCode 206 - Reverse Linked List[1](Easy)反转一个单链表。示例&#xff1a;输入&#xff1a; 1->2->3->4->5->NULL输出&#xff1a; 5->4->3->2->1->NULL反转链表这道题是我在阿里的面试中遇到的题目。它本身也是单链表…

1650显卡学计算机,适合老电脑升级?GTX1650显卡开箱,性价比依然不高!

原标题&#xff1a;适合老电脑升级&#xff1f;GTX1650显卡开箱&#xff0c;性价比依然不高&#xff01;新一代的NV显卡高端版本基本上全部和大家见面&#xff0c;例如RTX2080ti、RTX2070等等。而中端的RTX2060和GTX1660ti也陆续被玩家接受&#xff0c;剩下入门级的显卡英伟达取…

python参数类型_Python 参数类型和参数匹配模型

Python 方法的参数种类有很多&#xff0c;而不是通常语言定义的那样&#xff0c; Python 方法的传参能力要比想象的强大很多。很多初学者可能对一些库中带 * 带 ** 的参数类型非常奇怪&#xff0c;但是其实这些语法正是保证 Python 方法传参强大的重要因素。 First Thing 首先要…

city如何使用 mega unity_制作思路和CityEngine的简单使用

最近什么都不想干&#xff0c;就总结一下之前做过的一些东西。首先是建立一个虚拟城市&#xff0c;目前这个城市还在建造中&#xff0c;主要是用于自己的之后的动画和开放世界游戏制作&#xff0c;下面说以下自己之前的思路。说起城市建模&#xff0c;可以说是哗的一下一大堆可…

计算机网络结构有哪些,计算机网络主要拓扑结构有哪些

计算机网络的最主要的拓扑结构有总线型拓扑、环形拓扑、树形拓扑、星形拓扑、混合型拓扑以及网状拓扑。其中环形拓扑、星形拓扑、总线型拓扑是三个最基本的拓扑结构。在局域网中&#xff0c;使用最多的是星形结构。网络的拓扑结构&#xff1a;网络拓扑结构是指抛开网络电缆的物…

iphone怎样关闭副屏_iPhone手机关掉这3个设置,不仅省电,而且手机还不会卡

现在很多人无论是吃饭睡觉上厕所手机都会形影不离&#xff0c;然而手机玩久了电量就会刷刷的往下掉&#xff0c;不仅如此长时间下去手机还会出现卡顿的情况。如何才能令手机不卡顿并且最大限度上省电呢&#xff1f;为大家分享几个技巧&#xff0c;关掉这3个设置&#xff0c;手机…

wxpython按钮形状如何修改_Python图形化界面入门教程 - 使用wxPython自定义表

原标题&#xff1a;Python图形化界面入门教程 - 使用wxPython自定义表 来自&#xff1a; Linux迷 网址&#xff1a;https://www.linuxmi.com/python-gui-wxpython-zidingyi-biao.html 在此Python GUI中&#xff0c;我们学习下在wxPython中显示“定制表” 。在第一部分中&#x…