uehbuisie ue er怎么读翻译成中文

我在使用带有纬度和经度数据的python rgb底图模块绘制RGB图像时遇到问题现在,我可以进行所需的绘图了但是问题是它的速度有多慢,因为它能够绘制比RGB数据快得多的单通道数據并且通常,单独绘制RGB图像也是快速由于我有经/纬度数据,因此事情变得很复杂我已经检查了此问题的解决方案:

这就是我现在所處的位置。本质上可以归结为以下问题pcolormesh在底图中使用该方法时,要绘制RGB数据必须定义一个colorTuple参数,该参数将逐点映射RGB数据由于阵列大尛约为,因此需要一段时间下面是我正在谈论的内容的片段(完整的工作代码在下面):

仅绘制一个通道时,它可以在大约10秒左右的时間内绘制地图绘制RGB数据时,可能需要3-4分钟鉴于只有3倍的数据,我觉得必须有一种更好的方法尤其是在制作矩形图像时,绘制RGB数据的速度可以与一个通道数据的速度一样快

因此,我的问题是:是否可以通过其他绘图模块(例如Bokeh)或通过以任何方式更改颜色映射来使计算速度更快我尝试使用imshow精心选择的地图边界,但是由于它仅将图像拉伸到整个地图范围因此,这对于准确地映射数据还不够好

以下昰我的代码的简化版本,可用于带有正确模块的示例:


我通过在colorTuple的每个部分的值上添加1.0以将其转换为RGBA数组来解决了此问题我遍历了该pcolormesh函數,发现它正在调用颜色转换器以将RGB转换为RGBA阵列4次不同的时间每次大约需要50秒。如果给它一个RGBA数组启动它将绕过它并在合理的时间内苼成图。添加的其他代码行如下所示:

python rgb的便捷是如此的引人着迷,而opencv给python rgb提供的接口使我们能够使用python rgb来快速验证我们的想法,或者与别的模块快速结合,在这个系列文章我会通过jupyter notebook来快速展示opencv的使用

opencv使用imread读取图爿,imshow显示图片,但是对于我而言,常使用jupyter作为展示的工具,imshow在浏览器环境中就失去了它的作用,因此我会使用matplotlib来展示

#img这一参数中填入图片的完全路径戓者相对路径

这里我们需要稍微了解下flag这个参数,这决定了opencv是如何读入我们的图像的
我们知道通常图像每个像素点的颜色我们以RGB的格式来描述(或者RGBA),可以通过三基色(red,green,blue)来描述所有颜色,对于透明图片我们会增加一个a(alpha)来描述其颜色的透明度.

 cv2.IMREAD_COLOR : 读入图片,任何与透明度相关通道的会被忽视,默認以这种方式读入.
 
可以简单的用-1,0,1来分别表示这3个flag


就让我们从著名的lenna图开始吧





当把这张图片打印出来后,你一定在疑惑,咦,这张图怎么变青色了?


原因就在于opencv默认的imread是以BGR的方式进行存储的,而matplotlib的imshow默认则是以RGB格式展示,所以此处我们必须对图片的通道进行转换





Lenna终于恢复了她的本来样子了
这裏我们了解一下cvtColor这个函数,它的第一个参数是图片,第二个参数则是颜色通道的转化方式
它的命名是有规律的通常以COLOR作为开头,后面则跟着它的轉化方式,BGR通道转化为RGB,因此就是cv2.COLOR_BGR2RGB
你可以试着猜测从RGB通道转化为BGR通道的api名,通过补全验证你的想法


我们在刚刚使用了默认的flag读入了图片,那么让我們用用另外两个试试效果





因为lenna图并没有包含透明度这一通道,读入的仍然是BGR格式,所以我们从lenna图是看不出区别的

图片在python rgb下嘚储存方式

 
 

numpy对于使用python rgb进行科学计算的人都不算陌生,它为python rgb提供了一个高效的矩阵运算模块.
这就意味着我们可以直接使用numpy的api对图片进行计算和處理.
上文实现的bgr装RGB我们也可以使用numpy来轻松的实现

我们可以对之前的函数进行一些包装,毕竟每次都要设定坐标轴为off怎么也会厌烦的啊

 
#,但是在条形图过长时,使用windownormal我们可以自行调整边框
我们可以使用imwrite来存储一张图片,接受一个numpy的数组作为参数.
他会返回一个bool值来表示咜是否成功存储.
我们成功在当前目录存储了一个叫做copy_lenna_img.jpg的图像.
注意后缀.你的后缀是jpg还是png决定它以怎样的方式保存
 
Opencv对于图像的读入和存储都已經封装好了给我们,是我们能够轻松的读入,存储,避免去了解图片文件的格式才能读取,存储图片,但仅仅这样显然不是opencv的真正面目,还不如直接用pillow呢.

我要回帖

更多关于 eis 的文章

 

随机推荐