我是靠谱客的博主 跳跃季节,最近开发中收集的这篇文章主要介绍python中实现对文件夹下所有图片二值化处理 |小知识python中实现对文件夹下所有图片二值化处理,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
python中实现对文件夹下所有图片二值化处理
前言
有时候我们需要对成千上万张图片进行二值化处理,以达到我们的需要,下面介绍怎么用python代码实现。
代码
import cv2
import os
def read_path(file_pathname):
#遍历该目录下的所有图片文件
for filename in os.listdir(file_pathname):
print(filename)
image = cv2.imread(file_pathname+'/'+filename)
####change to gray
#(下面第一行是将RGB转成单通道灰度图,第二步是将单通道灰度图转成3通道灰度图)
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# 二值化函数 cvtcolor不能有中文路径!!!
cv2.threshold(image, 140, 255, 0, image)
# 二值化函数
retval, dst = cv2.threshold(image, 0, 255, cv2.THRESH_OTSU)
# # 腐蚀和膨胀是对白色部分而言的,膨胀,白区域变大,最后的参数为迭代次数
# dst = cv2.dilate(dst, None, iterations=1)
# # 腐蚀,白区域变小
# dst = cv2.erode(dst, None, iterations=4)
# cv2.namedWindow("Image")
# 图片显示框的名字 这行没啥用
# cv2.imshow("Image", dst)
# 图片显示
cv2.waitKey(0)
cv2.imwrite('E:/project/python/dataset/U2NET/test_dutomron/'+filename, dst)
# 保存当前灰度值处理过后的文件
# 图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
# 一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。
# Python-OpenCV中提供了阈值(threshold)函数:
# cv2.threshold()
# 函数:
# 1. src 指原图像,原图像应该是灰度图。
# 2. x 指用来对像素值进行分类的阈值。
# 3. y 指当像素值高于(有时是小于)阈值时应该被赋予的新的像素值
# 4. Methods 指不同的阈值方法,
read_path("E:/project/python/dataset/U2NET/DUT-OMRON")
后话
如果有什么问题请在评论区留言,谢谢大家阅读博客
最后
以上就是跳跃季节为你收集整理的python中实现对文件夹下所有图片二值化处理 |小知识python中实现对文件夹下所有图片二值化处理的全部内容,希望文章能够帮你解决python中实现对文件夹下所有图片二值化处理 |小知识python中实现对文件夹下所有图片二值化处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复