- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章浅谈Python 命令行参数argparse写入图片路径操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
什么是命令行参数?
命令行参数是在运行时给予程序/脚本的标志。它们包含我们程序的附加信息,以便它可以执行.
并非所有程序都有命令行参数,因为并非所有程序都需要它们.
为什么我们使用命令行参数?
如上所述,命令行参数在运行时为程序提供附加信息.
这允许我们在不改变代码的情况下动态地为我们的程序提供不同的输入 .
您可以绘制命令行参数类似于函数参数的类比。如果你知道如何在各种编程语言中声明和调用函数,那么当你发现如何使用命令行参数时,你会立刻感到宾至如归.
鉴于这是计算机视觉和图像处理博客,您在这里看到的很多参数都是图像路径或视频路径.
那么让我们创建一个名为shape_counter .py的新文件并开始编码:
我们在第2行导入 argparse - 这是帮助我们解析和访问命令行参数的包.
然后,在第7-12行,我们解析两个命令行参数。代码在这些行上非常易读,您可以看到如何格式化参数.
我们以 -input 参数为例.
在第7行,我们将ArgumentParser 对象实例化为 ap .
然后在第8行和第9行我们添加我们的 - input 参数。我们必须指定速记和长版本( - i 和 - input ),其中任何一个标志都可以在命令行中使用。这是必需的参数,如 required = True所示。如上所示, 帮助字符串将在终端中提供附加信息.
类似地,在第10行和第11行,我们指定了 -input 参数,这也是必需的.
从那里我们使用路径加载图像。请记住,输入图像路径包含在 args [ “input” ]中 ,因此这是cv2的参数 imread .
简单吧?
其余的行是特定于图像处理的—— 。
在第18-20行,我们完成了三项操作:
将图像转换 为灰度.
模糊灰度图像.
阈值模糊图像.
我们准备找到并绘制形状轮廓:
在第23-25行,我们在阈值图像中找到形状轮廓 .
从那里,我们在输入图像上绘制轮廓(第28和29行).
然后我们在图像上组装并放置文本(第32-34行)。文本包含形状的总数.
最后,我们利用我们的 -input 图像路径参数将图像写入到磁盘中的 cv2.imwrite (第37行).
让我们用两个参数执行命令:
附完整代码 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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写入图片路径操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/lixiaoyu101/article/details/84139774 。
最后此篇关于浅谈Python 命令行参数argparse写入图片路径操作的文章就讲到这里了,如果你想了解更多关于浅谈Python 命令行参数argparse写入图片路径操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
BufferedImage image = ImageIO.read(SpriteSheet.class.getResource(path)); BufferedImage image = Image
希望有人能够帮助我解决将我的 React 应用程序推送到 Heroku 时遇到的问题。 heroku 日志反复显示以下错误。 at=error code=H10 desc="App crashed"
我是 Kotlin 的新手,我正在经历这样的例子。 . . package com.example.lambda1 import spark.Spark.get fun main(args: Arra
如果您已经安装了 32 位 JDK,请在中定义一个 JAVA_HOME 变量 Computer>System Properties>System Setting>Enviorment VAriable
我正在开发一个独立于平台的应用程序。我收到一个文件 URL*。在 Windows 上,这些是: file:///Z:/folder%20to%20file/file.txt file://host/f
我在 OSX、Objective-C 上。 我有一个像 这样的路径/NSURL /Users/xxx/Desktop/image2.png 但我将它传递给第三方应用程序,该应用程序会像 excpect
我已经安装了 Android studio 和插件的 DART,FLUTTER 来启动 flutter,但是因为我在创建我的第一个 flutter 项目时无法提供 sdk 路径。 最佳答案 我试图找出
127.0.0.1:8000/api/仅包含来自第二个应用程序的 url,但我将两个 url 模块链接到相同的模式。甚至有可能做到这一点吗? 第一个应用程序: from django.urls imp
对于大量图像(大约 1k,加上相同数量的拇指,在大约 500 个文件夹中),我们要求网站上使用的所有图像 URI 都必须具有 SEO 优化路径。它们已经准备好并提供完整的路径结构(每个文件夹包含一个具
为什么 f 不是一个文件?什么可能导致这种情况? String currentPhotoPath = "file:/storage/sdcard0/Pictures/someFileName.
Gradle 中的项目名称或路径中允许使用哪些字符? 它是否与特定操作系统的目录名称中允许的字符相同(例如: http://en.wikipedia.org/wiki/Filename#Reserve
我有一个包含文件夹路径的表格。我需要找到层次结构中这些文件夹之间的所有“差距”。我的意思是,如果表格包含这 3 个文件夹: 'A' 'A\B\C' 'A\B\C\D\E\F\G' 我需要在层次结构中找
我在 Linux 服务器上的/home/subversion 中安装了 svn - 那里有一个 ROOT 文件夹,其中包含 db 和 conf 等文件夹。没有映射到项目名称的文件夹,请有人告诉我如何列
对于我的图像位置:/src/assets/bitmap/sample.jpg 给出了关键配置: context: resolve('src') output: { path: resolve('b
我需要创建带有圆角的 SVG 路径,以将它们导出到 DXF 进行切割。我的问题是角应该是圆弧,而不是贝塞尔曲线。 使用 arc 命令相对容易处理直角,因为半径也是从拐角到圆弧起点的距离。对于其他角度,
大家好,我正在玩 Airflow,我正在阅读这篇很有帮助的 tutorial .我正在寻求帮助以更好地了解 Admin->Connection 如何在 Conn Type: File (path) 方
我的目标是定义R将用于安装和搜索库的单个路径。我read可以通过更改Rprofile.site安装路径中的R文件来完成。我在那里尝试了两个命令: .libPaths("D:/RLibrary") .L
我有一个问题:当我在一个页面中时,我想返回到上一页。我使用 $routeProvider。如何读取之前的 url? 我尝试在我的 Controller 中使用此代码但不起作用... angular.m
我正在尝试将一个文件从我的主干合并到一个分支(wc),并且对于看起来位于当前合并操作中不涉及的分支上的路径出现奇怪的未找到路径错误。 例如,在我们的 svn 项目中,我们有: 分行 分支 0 分支 1
我有一个树数据序列化如下: 关系:P到C是“一对多”,C到P是“一对一”。所以列 P 可能有重复的值,但列 C 有唯一的值。 P, C 1, 2 1, 3 3, 4 2, 5 4, 6 # in da
我是一名优秀的程序员,十分优秀!