技术标签: python 数字图像处理 opencv 开发语言
使用opencv-python读取图片数据。并使用numpy库对图片的矩阵数据进行变换处理,实现平移旋转等操作。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。 (CV:Computer Vision,计算机视觉)。此外,OpenCV还提供了Java、python、cuda等的使用接口、机器学习的基础算法调用。
pip install opencv-python
pip install opencv-contrib-python
pip uninstall opencv-python
import cv2
1、 cv2.imread(filepath,flags) #读入一张图像
2、 cv2.imshow(wname,img) #显示图像
3、 cv2.waitKey(n) #按键等待函数
cv2.imshow('image',img)
cv2.waitKey(0) #等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。
#若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。
cv2.destroyAllWindow() #销毁所有窗口
cv2.destroyWindow(wname) #销毁指定窗口
4、cv2.imwrite(file,img,num) #保存一个图像
cv2.IMWRITE_JPEG_QUALITY
类型为 long ,必须转换成 intcv2.IMWRITE_PNG_COMPRESSION
, 从0到9 压缩级别越高图像越小。cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
5、cvtColor(Mat src, Mat dst, int code) #颜色空间转换函数
可以实现RGB颜色向HSV,HSI等颜色空间转换,也可以转换为灰度图。
src:表示来源的矩阵。
dst:表示目的地的矩阵。
code:表示转换类型的整数代码
COLOR_RGB2GRAY
COLOR_RGB2HSV
COLOR_RGB2BGR
dstCn:用于指定目标图像的通道数,如果指定的值是默认值0,那么通道数将由输入图像和颜色转换码决定。可以不写。
6、img.copy() #图像复制
7、cv2.resize(image, image2,dsize) #图像缩放
输入原始图像,输出新图像,图像的大小
8、cv2.flip(img,flipcode) #图像翻转。
9、cv2.getRotationMatrix2D(center,angle,scale) #图像翻转。
10、 cv2.convertScaleAbs(depth_image, alpha) 通过线性变换将数据转换成8位[uint8]
通过线性变换将数据转换成8位[uint8]
公式为:有效距离*alpha=255。
如果计算后的值大于255,则将其取为255(8位最大值)。
参考:python opencv 4.1.0 cv2.convertScaleAbs()函数 (通过线性变换将数据转换成8位[uint8])
参考:【图像处理】——灰度变换心得(cv2.normalize规范化0-255,cv2.convertScaleAbs(new_img)转为8位图))
11、 cv2.normalize(array,None,0,255,cv2.NORM_MINMAX) 将图片的值进行范围调整
X ^ 表示矩阵中任意一点归一化之后的值
x 表示矩阵中的所有原始值
min,max 分别代表矩阵中的最大值和最小值
max′,min′ 分别表示放缩的目标范围中的最大和最小值
除此之外,还有其他的归一化和放缩的选项,例如:
cv2.NORM_INF:归一化数组的(切比雪夫距离)L∞范数(绝对值的最大值)
cv2.NORM_L1 : 归一化数组的(曼哈顿距离)L1-范数(绝对值的和)
cv2.NORM_L2: 归一化数组的(欧几里德距离)L2-范数
参考:将图片的值进行范围调整 cv2.normalize()
参考:【图像处理】——灰度变换心得(cv2.normalize规范化0-255,cv2.convertScaleAbs(new_img)转为8位图))
文章浏览阅读943次。打开hosts文件:185.199.109.153 youzan.github.io185.199.111.153 mint-ui.github.io185.199.111.153 elemefe.github.io_mint 软件管理器打不开
文章浏览阅读128次。西班牙已经发布了基于Firefox OS的手机,但是不是任何人能体验到,很都人都在苦苦等待,现在我们有另一种方法,不需要任何命令,没有纷繁复杂的安装步骤,在该文中,会教大家在ubuntu系统中一种轻松体验 Firefox OS。只需在火狐浏览器中就可是实现:firefoxosvs4火狐OS模拟器是为开发者使用的,用来测试他们的程序的的火狐浏览..._基于ubuntu的firefox os
文章浏览阅读755次。本文出自 “至简李云” 博客,http://yunli.blog.51cto.com/831344/168865,作者:李云,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明 单元测试(Unit Test, UT)是一个老生常谈的话题,在对这篇文章进行博客归类时,我还是将其归类为开发技术,尽管其带有测试两个字。如何做单元测试不是我这里想说的,而是业界对其认识的认识及重视是我想指出的。_单元测试有利于重构
文章浏览阅读949次,点赞2次,收藏7次。聚合函数Aggregations一、简单聚合 1.1 数据准备 1.2 count 1.3 countDistinct 1._sparksql 聚合函数
文章浏览阅读308次。Mysql 想要远程客户端链接,必须给root修改可以远程访问的权限一、在连接服务器后,操作mysql系统数据库mysql -u root -puse mysql;查询用户表命令:select User,authentication_string,Host from user这里也可以看出host默认都是localhost访问权限二、接下来就是最重要的部分了:..._ubuntu 连接远程mysql
文章浏览阅读1.3w次,点赞38次,收藏70次。graylog使用 graylog报警配置 graylog接springboot graylog使用总结 graylog邮件通知_graylog
文章浏览阅读467次。将脚本放在底部。\还是放在head中,用以保证在js加载前,能加载出正常显示的页面。\<script>标签放在\前成组脚本:由于每个\<script>标签下载时阻塞页面解析过程,所以限制页面的\<script>总数也可以改善性能。适用于内联脚本和外部脚本。非阻塞脚本:等页面完成加载后,再加载js代码。也就是,在window.onload事件发出..._引用外部scripts 无阻塞请求
文章浏览阅读866次。SVN merge 三种方式转载1、Merge a range of revisions2、Reintegrate a branch3、Merge two different trees——————————————————————————————————————————————————————以下是转载自chunanyong的一篇关于svn分支合并类型的文章,出..._svn merge tree
文章浏览阅读569次。基于LXC的Android系统虚拟化技术①.PDF计算机系统应用ISSN1003-3254,CODENCSAOBN E-mail:csa@ComputerSyste..._lxc容器技术运行安卓系统
文章浏览阅读60次。学习IT技术需要有系统化的学习计划和良好的学习方法,需要选择合适的学习资料,保持持续学习状态,并营造良好的学习环境。大家可以结合自己的实际情况,制定适合自己的学习计划,利用各种学习工具提升自己的技术水平。IT技术是一个不断更新、不断发展的领域,学习IT技术需要保持持续的学习状态。安排休息时间 :休息时间同样很重要,适当地安排休息时间,既可以缓解学习压力,同时,对于记忆新事物和技能的帮助也是巨大的。制定学习计划表:分别制定每周、每月、与学习目的有关的计划,这可以帮助我们有效地安排时间,提升学习效率。
文章浏览阅读466次。DOCTYPE html>富文本编辑器实现原理title>#edit{height:260px;width:100%;overflow:scroll;border:solid 1px black}style>head>div>居中button>左对齐button>右对齐button>添加缩进button>去掉缩进button>宋体button>大字体button>红色字体button>..._html标签在线转富文本
文章浏览阅读6.7w次,点赞18次,收藏159次。GIS派文章地址:13个免费的开源GIS软件QGISQGIS是一个开放源码的地理信息系统。该项目诞生于2002年5月,并于同年6月作为SourceForge上的一个项目建立。我们一直在努力使GIS软件(传统上是昂贵的专有软件)成为任何人都可以使用个人电脑的可行前景。QGIS目前运行在大多数Unix平台、Windows和macOS上。QGIS是使用Qt工具包(https://www.qt.io)..._开源 gis