专业财税服务推荐

精选优质财税服务,为企业提供专业、可靠的财税解决方案,助力企业健康发展

零报税代理记账
零申报代理记账
报税做账算帐财务报表老会计做账
代理记账
咨询微信:lhy_happyday
工商营业执照年度年报年检公示
全国个体、企业、公司、合作社工商年审年报服务!
个体/10元/次 企业/20元/次
咨询微信:lhy_happyday
财税咨询服务
一对一专业财税咨询,解决企业财税难题,提供定制方案
咨询微信:lhy_happyday
财务分析服务
小规模个体报税0申报税务年报工商年报月报季报报税代理记账
咨询微信:lhy_happyday
立即咨询专业财税顾问
微信号: lhy_happyday
会计从业9年,管理多家个体工商、小规模、一般纳税人等企业的财务、税务等相关工作!。
扫码或搜索添加微信,备注"财税咨询"获取专属优惠
知方号 知方号

numpy中的shape和opencv中的shape的区别 shape啥意思shape

numpy中的shape和opencv中的shape的区别

在使用opencv和numpy的过程中,难免会需要对图像的大小进行调整,resize、获得shape之类的操作更是家常便饭了,但是在使用opencv和numpy改变图像大小的过程中,总是发现一些奇怪的问题,困扰了我很久,今天记录一下,以防下次再犯,也为有相同困扰的童鞋提个醒! 先来看看通过opencv读取一张图像之后,shape是什么吧: 我么来读取一张宽858,长600的图像:

>>> im = cv2.imread("XXX")>>> im.shape(600, 858, 3)>>>

很显然,shape的组成是这样的: (高,宽,通道数) 再来看看numpy,numpy中很多的方法都带有shape这个参数,当使用numpy来创建一幅图像的时候,总是容易将opencv和numpy的shape搞混掉,我们先看看numpy创建一个二维数组:

>>> a = np.zeros((3,5))>>> aarray([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]])>>>

很显然,我们传入的(3,5)作为shape的参数,而结果显示,3是行数,5是列数,即3是高度,5是宽度,那么我们使用numpy创建一幅图像时,shape就是 (高度,宽度), 如果还有通道的话,就是 (高度,宽度,通道数). 原来,numpy的shape[0:2]和opencv中通过imread读取的图像的shape[0:2]是一样的的,即 (高度,宽度). 但是在向opencv的方法中传入size参数时,又是什么样的呢? 还是用刚刚读取的图像做例子(高600,宽858),

>>> reim = cv2.resize(im,(200,400))>>> cv2.imshow("resize",reim)>>> cv2.waitKey(3000)

显然,我们传入的size参数是这样解释的 200作为宽,400作为高,即size为 (宽,高),这和我们之前看到的shape里数据的顺序是不一样的!其实当我们涉及界面或者图像的size时,size中数据的排列方式一般都是 ( 宽,高) ,所以当我们想使用某些图片或者控件等的size时,请注意size和shape中数据的顺序是不一样的!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。