0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈Python中的opencv

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-04-12 16:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

经典机器学习深度学习,当下这些热门的词汇不知不觉在我们学习(diaosi)氛围浓重的大学蔓延开来,作为与计算机专业毫不相干的,指挥摁下开机键,点开穿越火线娴熟地操作wasd的我而言,当周围人讨论opencv,tensorflow,sklearn这些玄幻词汇时,听得我是一头雾水。今天,重拾一年前敲击hello world的自信,开启了Python的opencv生涯。

壹 为什么选择python?

作为时下最时尚的python语言,简洁的代码,借助于向军火库一般的各种开源工具包,你可以完成你想做的任何事。数值计算这些numpy,scipy,数据分析工具pandas,可视化matplotlib,可以使得非计算机工科生甚至文科生轻松上手,爬取处理数据。作为胶水语言的python在opencv上的应用不仅简单方便编写代码,其运行速度有时甚至优于c++等,让你更加专注于目标而不是语法结构。最重要的是,如果你已经下载过了anaconda python,安装opencv只需要一行代码就可完成!

贰 掌握anaconda和安装opencv

anaconda是用于科学计算的免费的python版本。可以在官网上下载anaconda,https://www.anaconda.com/,选择windows还是linux或是苹果的mac os。看清楚32位还是64位便可以下载。不过,下载数小时,经常下载不成功是常事。这时候,强烈建议逛一逛清华或者中科大的镜像站,下载变成分分钟的事。

opencv的安装:在网页上下载好对应版本的.whl文件后,打开你电脑的命令行,pip install一下就ok了。

叁 常见图片的格式

作为图像处理,那就需要知道常见的图片格式有哪些。

比较老的有bmp格式,bmp格式无损及没有压缩像素,但麻烦的是图片的体积偏大。

接着是jpg格式或者是jpeg格式,这是有损压缩的模式,将像素信息用jpeg保存成文件再读取出来。这个是我比较常处理的,用最少的磁盘空间得到最好的图片质量。

还有是png格式,是一种无损压缩模式,用的是行程编码算法,相比jpeg,更加适合存储几何特征比较强的图片。

我们在空间搞笑图片中常看见的GIF格式图片,是多帧图像的集合。我们处理读取时也要一帧一帧读。通过调节参数也可以控制显示快慢。

我们常说的黑白图像,在计算机中有两种。一种是位图模式,是真真切切的非黑即白,这种图像只有一位深度:0就是纯黑,1就是纯白。

还有一种图像叫灰度图像,在生活中我们常把灰度图像作为黑白图像。事实上,灰度图像有8位深度,(0,0,0,0,0,0,0,0)是纯黑,(1,1,1,1,1,1,1,1)是纯白,其余介于1至255之间的就是不同深度的灰度图像。

彩色图像就是RGB图像,顾名思义,RED,GREEN,BLUE,这三种色彩叠加组合可以构成我们人眼看到的任何颜色,在计算机处理彩色图像时,也是通过红绿蓝三个通道来进行,每个通道又各有八个深度,由此,我们知道,理论上计算机可以构成256的三次方种颜色!

肆 色彩空间转换

hsv颜色模型更接近人感觉颜色的方式,H是色相,S是饱和度,V是亮度。

lab色彩空间:L:整张图的亮度,a和b表示颜色多少,用于编码颜色。

opencv提供了上百种颜色空间转换方法,opencv做转化时,用到了cvtColor函数。

该函数用两个参数足以,第一个是图像名称,第二个是转换方式。

例如,我已经读入一个函数,

img = cv2.imread(path,way),

其中path是路径,way是读入方式,灰度图,彩色图还是加载alpha通道。

接着, gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 这就完成了彩色图像与灰度图像之间的转化。

其中,cv2.COLOR_BGR2GRAY这个方式,如果转化后还想要csv,就cv2.COLOR_BGR2CSV,如果想变更通道顺序,那么cv2.COLOR_BGR2RGB就可以了,很好玩。

图像缩放用cv2.resize函数,例如变成400*400像素记得写成cv2.resize(img,(400,400))。同样如果想x方向缩小直接fx=0.5即可。

此外,图像反转,图像保存,阈值化处理等也被opencv包装成了函数,用起来也十分方便。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OpenCV
    +关注

    关注

    33

    文章

    652

    浏览量

    45162
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90415

原文标题:浅浅浅浅谈opencv

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    Fusion的简单方法。在本示例,我们将演示如何使用Python脚本运行光学仿真,以向用户简要概述这种跨平台的仿真能力。 用例概览 文件路径 用户可以在样本文件的文件夹中找到所有文件。包含这些文件
    发表于 03-31 09:39

    OpenCV首次到访奥比光并展开深度交流

    1月15日,OpenCV创始人及核心团队首次到访奥比光,双方围绕3D视觉硬件与计算机视觉软件的协同创新,展开深度交流。
    的头像 发表于 01-21 15:51 648次阅读

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块的少数算法(如早期 SIFT
    发表于 12-13 12:37

    Termux调试圣诞树Python代码

    在Termux调试Python代码(以圣诞树立例)非常简单,核心分为环境准备、代码编写、运行调试三个步骤,下面一步步教你操作: 一、环境准备(首次使用需做) Termux默认可能没有Python
    发表于 12-09 09:02

    零成本钢铁侠手套!树莓派+OpenCV 秒变手势遥控器!

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-16 16:16 1700次阅读
    零成本钢铁侠手套!树莓派+<b class='flag-5'>OpenCV</b> 秒变手势遥控器!

    如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-14 17:45 2739次阅读
    如何使用树莓派与<b class='flag-5'>OpenCV</b>实现面部和运动追踪的云台系统?

    如何使用树莓派+OpenCV实现姿态估计和面部特征点追踪?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-13 17:44 1568次阅读
    如何使用树莓派+<b class='flag-5'>OpenCV</b>实现姿态估计和面部特征点追踪?

    【创龙TL3562-MiniEVM开发板试用体验】问题4 ubuntu镜像,opencv不能正常工作??

    /simple --trusted-host mirrors.aliyun.com opencv-python 示例代码 import cv2 # 初始化摄像头对象,0通常是默认的摄像头索引 #cap
    发表于 08-11 22:17

    【GM-3568JHF开发板免费体验】OpenCV开发环境安装和计数程序开发

    、 Android 等系统上运行,并通过Python接口简化操作。 sudo apt install libopencv-dev python3-opencv 四、OpenCV图像识别测试 使用
    发表于 08-09 13:30

    【GM-3568JHF开发板免费体验】OpenCV 视频目标跟踪 ( CamShift)

    的实现 在 OpenCV ,CamShift 算法通过 cv2.CamShift() 函数实现。 # -*- coding: utf-8 -*- import cv2 import
    发表于 08-09 13:19

    如何板端编译OpenCV并搭建应用--基于瑞芯微米尔RK3576开发板

    INSTALL_PYTHON_EXAMPLES=OFF -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/home/myir/Downloads
    发表于 08-08 17:14

    ElfBoard技术贴|如何在【RK3588】ELF 2开发板安装openCV4以及第三方库contrib

    应用,不同项目对功能、性能等方面常有特定需求,开发者可能需要使用其他版本的OpenCV,此时便需替换Buildroot的默认配置。同时,为满足更复杂场景需求并扩展功能,添加OpenCV的contrib
    的头像 发表于 08-05 11:03 4799次阅读
    ElfBoard技术贴|如何在【RK3588】ELF 2开发板<b class='flag-5'>中</b>安装<b class='flag-5'>openCV</b>4以及第三方库contrib

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试 本文介绍了 Milk-V Duo S 开发板实现 Buildroot SDK 镜像编译、基于 TDL 模型的人
    发表于 07-11 13:48

    基础篇3:掌握Python的条件语句与循环

    Python编程语言中,条件语句和循环是构成复杂逻辑和数据处理的基石。本篇基础教程将帮助您深入了解Python的条件语句和循环结构,让您能够更好地控制程序流程。 条件语句 条件语句允许程序根据
    发表于 07-03 16:13

    itop-3568开发板机器视觉opencv开发手册-图像绘制-画线

    demo11_line.py 然后向该文件添加以下内容: 第 1 行和第 2 行分别导入了 opencv 和 numpy 库; 第 3 行使用 zeros()函数创建一个 512x512 的黑色图片; 第 4 行使
    发表于 06-04 10:38