浅谈Python 命令行参数argparse写入图片路径操作


Posted in Python onJuly 12, 2020

什么是命令行参数?

命令行参数是在运行时给予程序/脚本的标志。它们包含我们程序的附加信息,以便它可以执行。

并非所有程序都有命令行参数,因为并非所有程序都需要它们。

为什么我们使用命令行参数?

如上所述,命令行参数在运行时为程序提供附加信息。

这允许我们在不改变代码的情况下动态地为我们的程序提供不同的输入 。

您可以绘制命令行参数类似于函数参数的类比。如果你知道如何在各种编程语言中声明和调用函数,那么当你发现如何使用命令行参数时,你会立刻感到宾至如归。

鉴于这是计算机视觉和图像处理博客,您在这里看到的很多参数都是图像路径或视频路径。

那么让我们创建一个名为shape_counter .py的新文件并开始编码:

浅谈Python 命令行参数argparse写入图片路径操作

我们在第2行导入 argparse - 这是帮助我们解析和访问命令行参数的包。

然后,在第7-12行,我们解析两个命令行参数。代码在这些行上非常易读,您可以看到如何格式化参数。

我们以 -input 参数为例。

在第7行,我们将ArgumentParser 对象实例化为 ap 。

然后在第8行和第9行我们添加我们的 - input 参数。我们必须指定速记和长版本( - i 和 - input ),其中任何一个标志都可以在命令行中使用。这是必需的参数,如 required = True所示。如上所示, 帮助字符串将在终端中提供附加信息。

类似地,在第10行和第11行,我们指定了 -input 参数,这也是必需的。

从那里我们使用路径加载图像。请记住,输入图像路径包含在 args [ “input” ]中 ,因此这是cv2的参数 imread 。

简单吧?

其余的行是特定于图像处理的——

在第18-20行,我们完成了三项操作:

将图像转换 为灰度。

模糊灰度图像。

阈值模糊图像。

我们准备找到并绘制形状轮廓:

浅谈Python 命令行参数argparse写入图片路径操作

在第23-25行,我们在阈值图像中找到形状轮廓 。

从那里,我们在输入图像上绘制轮廓(第28和29行)。

然后我们在图像上组装并放置文本(第32-34行)。文本包含形状的总数。

最后,我们利用我们的 -input 图像路径参数将图像写入到磁盘中的 cv2.imwrite (第37行)。

让我们用两个参数执行命令:

浅谈Python 命令行参数argparse写入图片路径操作

附完整代码

Codeblock #1: Lines 1-20# import the necessary packages
import argparse
import imutils
import cv2
 
# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--input", required=True,
	help="path to input image")
ap.add_argument("-o", "--output", required=True,
	help="path to output image")
args = vars(ap.parse_args())
 
# load the input image from disk
image = cv2.imread(args["input"])
 
# convert the image to grayscale, blur it, and threshold it
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5,5), 0)
thresh = cv2.threshold(blurred, 60, 255, cv2.THRESH_BINARY)[1]
# extract contours from the image
cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
	cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if imutils.is_cv2() else cnts[1]
 
# loop over the contours and draw them on the input image
for c in cnts:
	cv2.drawContours(image, [c], -1, (0, 0, 255), 2)
 
# display the total number of shapes on the image
text = "I found {} total shapes".format(len(cnts))
cv2.putText(image, text, (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5,
		(0, 0, 255), 2)
 
# write the output image to disk
cv2.imwrite(args["output"], image)
$ python shape_counter.py --input input_01.png --output output_01.png

以上这篇浅谈Python 命令行参数argparse写入图片路径操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python简单计算文件夹大小的方法
Jul 14 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
python如何查看安装了的模块
Jun 23 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
python实现视频压缩功能
Dec 18 Python
OpenCV全景图像拼接的实现示例
Jun 05 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 Python
Python实现封装打包自己写的代码,被python import
Jul 12 #Python
Django封装交互接口代码
Jul 12 #Python
在django中实现choices字段获取对应字段值
Jul 12 #Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 #Python
django美化后台django-suit的安装配置操作
Jul 12 #Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 #Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 #Python
You might like
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
python实现2014火车票查询代码分享
2014/01/10 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python爬取微信公众号文章的方法
2019/02/26 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
中华在我心中演讲稿
2014/09/13 职场文书