当前位置:网站首页>【py脚本】批量二值化处理图像
【py脚本】批量二值化处理图像
2022-07-31 04:36:00 【jingzilideniu】
注意上面博客中阈值类型表的介绍:
cv2.THRESH_BINARY
cv2.THRESH_BINARY_INV
cv2.THRESH_TRUNC
cv2.THRESH_TOZERO
cv2.THRESH_TOZERO_INV
单个图片处理:
import cv2
img = cv2.imread("166dian.jpg")
print(img)
# 先进行灰度化处理,再进行二值化
Grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 127是二值化阈值,大于255的像素值都置为0
ret, thresh = cv2.threshold(Grayimg, 127, 255, cv2.THRESH_BINARY)
cv2.imwrite('166dian1.jpg', thresh)
输入一个输出六个结果:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread('166dian.jpg')
# 中值滤波
# img = cv2.medianBlur(img, 5)
GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh1=cv2.threshold(GrayImage,127,255,cv2.THRESH_BINARY)
ret,thresh2=cv2.threshold(GrayImage,127,255,cv2.THRESH_BINARY_INV)
ret,thresh3=cv2.threshold(GrayImage,127,255,cv2.THRESH_TRUNC)
ret,thresh4=cv2.threshold(GrayImage,127,255,cv2.THRESH_TOZERO)
ret,thresh5=cv2.threshold(GrayImage,127,255,cv2.THRESH_TOZERO_INV)
titles = ['Gray Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']
images = [GrayImage, thresh1, thresh2, thresh3, thresh4, thresh5]
for i in range(6):
plt.subplot(2,3,i+1),plt.imshow(images[i],'gray') #两行,三列,序号 出图
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
某文件夹中图片批量处理:
注意:
1.路径最好要全英文
2. 根据原博客稍微改动
import os
import cv2
from PIL import Image
def binarization():
# 获取目录下所有图片名
filename = os.listdir(r"F:\lianxi\lianxi\py\input")#F:\python_Demo\DeepLearning\tools3\shapes\cmutestGT
print(filename)
# os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
base_dir = r"F:\lianxi\lianxi\py\input" # input
new_dir = r"F:\lianxi\lianxi\py\output" # output
for img in filename:
name = img
path1 = os.path.join(base_dir, img)
print(name)
img = cv2.imread(path1)
#print(img)
Grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(Grayimg, 127, 255, cv2.THRESH_BINARY)
cv2.imwrite('name.jpg', thresh)
image = Image.open('name.jpg')
# 有需要可对图像进行大小调整
# image = image.resize((350, 350),Image.ANTIALIAS)
path = os.path.join(new_dir, name)
image.save(path)
binarization()
边栏推荐
- log level and print log note
- SOLVED: After accidentally uninstalling pip (two ways to manually install pip)
- 【论文阅读】Mastering the game of Go with deep neural networks and tree search
- 产学研用 共建开源人才生态 | 2022开放原子全球开源峰会教育分论坛圆满召开
- 【AUTOSAR-RTE】-4-Port and Interface and Data Type
- BUG消灭者!!实用调试技巧超全整理
- 行业落地呈现新进展 | 2022开放原子全球开源峰会OpenAtom OpenHarmony分论坛圆满召开
- XSS靶场(三)prompt to win
- The idea project obviously has dependencies, but the file is not displayed, Cannot resolve symbol 'XXX'
- (4) Recursion, variable parameters, access modifiers, understanding main method, code block
猜你喜欢
![[Swift] Customize the shortcut that pops up by clicking the APP icon](/img/d4/84b237995fc3d3700916eb57f6670d.png)
[Swift] Customize the shortcut that pops up by clicking the APP icon

VScode+ESP32快速安装ESP-IDF插件

Recursive implementation of the Tower of Hanoi problem

ENSP, VLAN division, static routing, comprehensive configuration of Layer 3 switches

WeChat applet uses cloud functions to update and add cloud database nested array elements
![[C language] General method of base conversion](/img/28/954af5f47a79ff02d3cc0792ac8586.jpg)
[C language] General method of base conversion

【小土堆补充】Pytorch学习笔记_Anaconda虚拟环境使用

C语言从入门到如土——数据的存储

微信小程序使用云函数更新和添加云数据库嵌套数组元素

MATLAB/Simulink&&STM32CubeMX工具链完成基于模型的设计开发(MBD)(三)
随机推荐
从零开始,一镜到底,纯净系统搭建除草机(Grasscutter)
递归实现汉诺塔问题
Safety 20220718
论治理与创新 | 2022开放原子全球开源峰会OpenAnolis分论坛圆满召开
visual studio 那些提高效率的快捷键,总结(不时更新)
Redis uses LIST to cache the latest comments
MySQL数据库增删改查(基础操作命令详解)
el-image标签绑定点击事件后没有有用
MySQL数据库必会的增删查改操作(CRUD)
Safety 20220722
【线性神经网络】softmax回归
Gaussian distribution and its maximum likelihood estimation
The idea project obviously has dependencies, but the file is not displayed, Cannot resolve symbol 'XXX'
三子棋的代码实现
RESTful api interface design specification
两个地址池r2负责管地址池r1负责管dhcp中继
高等数学---第九章二重积分
(tree) Last Common Ancestor (LCA)
开源社区三十年 | 2022开放原子全球开源峰会开源社区三十年专题活动圆满召开
qlib自动化quant