| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> PIL和cv2读取图片时的差异及round函数讲解 -> 正文阅读 |
|
[人工智能]PIL和cv2读取图片时的差异及round函数讲解 |
torchvision的tranform中,读取图像采用PIL图像,而一般情况下我们都是用cv2,这里介绍下两者的区别, PIL读取图片scale为(0~1),读取为RGB格式,对于彩色图像,不管其图像格式是PNG,还是BMP,或者JPG,在PIL中,使用Image模块的open()函数打开后,返回的图像对象的模式都是“RGB”。而对于灰度图像,不管其图像格式是PNG,还是BMP,或者JPG,打开后,其模式为“L”。
caffe.io.load_image()读取图片scale为(0~1),读取为RGB格式,通道格式为(H,W,C) cv2.imread()读取图像scale为(0~255),读取为BGR 格式,通道格式为(H,W,C),即行,列、通道数(Row, Col, C)。 round( )函数简介round() 函数作用就是,返回浮点数x的四舍五入值。 round( x [, n] ) 参数x,n均为数值表达式,返回值为x的四舍五入值。n为保留的小数位数,不加n则只保留x四舍五入后的整数部分。 >>> round(2.3) 2 >>> round(2.45, 1) 2.5 >>> round(2.675, 2) 2.67 round()函数只有一个参数,不指定位数的时候,返回一个整数,而且是最靠近的整数,类似于四舍五入,当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的情况时,如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数则向上取舍。根据取舍的位数前的小数奇偶性来判断,奇偶平分,符合公平性原则。 为什么需要平分呢?原因就是部分小数无法用二进制完整表示,如1.15,转为二进制将是很长的一串数字:1.0010011001100110011001100110011001100110011001100110011 这可不是简单的几个字节就能存放下的。因此这里就出现了取舍的问题。 那么正确的四舍五入是否无法实现了呢?当然是有解决办法的。比如,当你需要四舍五入保留两位小数的时候,可以将数值乘以100再除以100.0: >>> round(2.675 * 100)/100.0 2.68 这样可以解决部分浮点数四舍五入的问题。为什么是部分呢?笔者发现: >>> round(2.135*100)/100.0 2.13 检验下过程: >>> 2.135*100 213.49999999999997 >>> Decimal(2.135)*100 Decimal('213.4999999999999786837179272') 由于二进制导致这个结果 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:26:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |