我们编写的脚本代码,自己不是唯一一个使用它们的人。如果你为别人编写代码,你要考虑以后代码的维护。换句话说,你的代码必须有很好的注释、可读性,并且任何查看你的代码的人都能理解。
合理的注释通常会解释代码的含义,帮助您记住编写代码时的思维过程。
import cv2
import glob
'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
# 按升序加载图像
image_files = sorted(glob.glob("*.jpg"))
# 循环访问文件,将其设置为灰度
for i in image_files:
img = cv2.imread(i) # 读取图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度
gray_img_small = cv2.resize(gray_img, (800, 450)) # 调整图像大小以进行可视化
cv2.imshow('Gray Image', gray_img_small) # 在名为“Gray Image”的窗口中显示灰色图像
cv2.waitKey(0) # 按任意键关闭窗口
cv2.destroyAllWindows() # 关闭所有窗口
如果你能将代码写成函数,使你的代码可重用,你将为自己省下很多时间。与其直接在文件中编写代码,不如尝试将它们封装在函数中。
让我们编写一个函数,将图像文件作为参数,并返回灰色图像。
import cv2
import glob
'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
def color2gray(filename):
img = cv2.imread(filename) # 读取图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度
gray_img_small = cv2.resize(gray_img, (800, 450)) # 调整图像大小
cv2.imshow('Gray Image', gray_img_small) # 在名为“Gray Image”的窗口中显示灰色图像
cv2.waitKey(0) # 按任意键关闭窗口
return gray_img
# 按升序加载图像
image_files = sorted(glob.glob("*.jpg"))
# 循环访问文件,将其设置为灰度
for i in image_files:
color2gray(i)
cv2.destroyAllWindows() # 关闭所有窗口
前面已经通过函数来使代码可重用,现在,可以将这些函数单独存储在一个 Python 文件中。可以像导入第三方库那样导入此文件,并在需要时调用函数。
让我们将之前的函数放在一个名为“my.py”的 Python 文件中,使用 import 导入。
# my.py 文件
import cv2
def color2gray(filename):
img = cv2.imread(filename) # 读取图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度
gray_img_small = cv2.resize(gray_img, (800, 450)) # 调整图像大小
cv2.imshow('Gray Image', gray_img_small) # 在名为“Gray Image”的窗口中显示灰色图像
cv2.waitKey(0) # 按任意键关闭窗口
return gray_img
import cv2
import glob
import my
'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
# 按升序加载图像
image_files = sorted(glob.glob("*.jpg"))
# 循环访问文件,将其设置为灰度
for i in image_files:
my.color2gray(i)
cv2.destroyAllWindows() # 关闭所有窗口
如果想最大限度实现代码可重用。可以使用 sys 模块,它使我们能够使用一些变量和函数在任何平台上与 Python 解释器进行交互。为 Python 脚本文件传递命令行参数的方法之一是使用 sys.argv,它是在执行期间传递的所有参数的列表。让我们能够使用命令行参数执行 Python 代码文件,省去修改代码的麻烦。
port sys
import cv2
import glob
import my
'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
# 获取参数
arguments = sys.argv
# 按升序加载图像
image_files = sorted(glob.glob(arguments[1]+"*."+arguments[2]))
# 循环访问文件,将其设置为灰度
for i in image_files:
my.color2gray(i)
cv2.destroyAllWindows() # 关闭所有窗口
我们可以按如下方式运行,在系统命令行中我们的脚本文件:
python test.py c:\ jpg
通过将路径(c:\)和文件类型(jpg)作为参数传递,不必每次都修改代码。
PEP 8 是 Python 官方的代码风格规范,由 Python 社区维护。它为编写干净、可读且一致的 Python 代码提供了指南和约定。遵循 PEP 8 代码风格规范,有助于提高代码质量,并使开发人员更容易在项目上进行协作。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!