本文将和大家一起探讨python并发编程的实际运用,会以一些我实际使用的案例,或者一些典型案例来分享。本文使用的案例是我实际使用的案例,是基于之前效率不高的代码改写成并发编程的。让我们来看看改造的过程,这样就会对并发编程的高效率有个清晰地认知,也会在改造过程中学到一些知识。
本文为python并发编程的第十六篇,上一篇文章地址如下:
python:并发编程(十五)_Lion King的博客-CSDN博客
下一篇文章地址如下:
(暂无)
python:根据灰度值检查成像是否存在黑图情况_python 判断图片是否有黑边_Lion King的博客-CSDN博客
import os
from PIL import Image
def image_gray(img):
# 打开图片
img = Image.open(img)
# 计算平均灰度值
gray_sum = 0
count = 0
for x in range(img.width):
for y in range(img.height):
if img.mode == "RGB":
r, g, b = img.getpixel((x, y))
gray_sum += (r + g + b) / 3
elif img.mode == "L":
gray_value = img.getpixel((x, y))
gray_sum += gray_value
count += 1
avg_gray = gray_sum / count
return avg_gray
def find_image(folder_path):
# 定义一个列表存储图片路径
images = []
# 遍历文件夹下的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
# 处理每个文件,将其添加到列表中
images.append(file_path)
return images
def assert_run(folder_path):
images=find_image(folder_path)
for img in images:
gray = image_gray(img)
# 灰度值小于50,将认为是黑图
if gray < 50:
print(img, ":", gray)
if __name__ == "__main__":
# image_gray()
# find_image()
folder_path = r'D:\黑图'
assert_run(folder_path)
这里简单介绍一下这段代码:这段代码是一个简单的图像处理程序,用于找出指定文件夹中的黑图像。代码首先定义了一个image_gray
函数,用于计算图像的平均灰度值。然后定义了一个find_image
函数,用于遍历指定文件夹下的所有文件,并返回图像文件的路径列表。最后,在assert_run
函数中,使用find_image
函数获取指定文件夹中的图像路径列表,并对每个图像调用image_gray
函数计算平均灰度值,如果平均灰度值小于50,则打印该图像的路径和灰度值。
整体流程如下:
(1)导入必要的模块:os
用于操作文件和文件夹,PIL
用于图像处理。
(2)定义image_gray
函数:打开图像文件,计算图像的平均灰度值。
(3)定义find_image
函数:遍历指定文件夹下的所有文件,返回图像文件的路径列表。
(4)定义assert_run
函数:调用find_image
函数获取指定文件夹中的图像路径列表,对每个图像调用image_gray
函数计算平均灰度值,如果小于50则打印图像路径和灰度值。
(5)在if __name__ == "__main__":
代码块中,指定一个文件夹路径作为参数,调用assert_run
函数执行图像处理。
请注意,代码中使用了PIL
库来处理图像,确保你已经安装了该库,可以使用pip install Pillow
来安装。此外,要确保指定的文件夹中包含图像文件,并且文件的格式受PIL
库支持。