浅谈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中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
python字符串中的单双引
Feb 16 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
利用Django模版生成树状结构实例代码
May 19 Python
python实现淘宝购物系统
Oct 25 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
python小项目之五子棋游戏
Dec 26 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 Python
python网络编程之五子棋游戏
May 14 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中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
php session劫持和防范的方法
2013/11/12 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
JavaScript的词法结构精华篇
2018/10/17 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python学习笔记(二)基础语法
2014/06/06 Python
Python解析json文件相关知识学习
2016/03/01 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python生成圆形图片的方法
2020/03/25 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python实现textrank关键词提取
2018/06/22 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
Python实现AI换脸功能
2020/04/10 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
优秀毕业生自我鉴定
2014/01/19 职场文书
鼓舞士气的口号
2014/06/16 职场文书
创先争优个人总结
2015/03/04 职场文书
管理失职检讨书范文
2015/05/05 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang