当前位置:网站首页>【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()
边栏推荐
- 已解决(最新版selenium框架元素定位报错)NameError: name ‘By‘ is not defined
- 高斯分布及其极大似然估计
- 【论文阅读】Mastering the game of Go with deep neural networks and tree search
- Open Source Smart Future | 2022 OpenAtom Global Open Source Summit OpenAtom openEuler sub-forum was successfully held
- (8) Math class, Arrays class, System class, Biglnteger and BigDecimal classes, date class
- $parent/$children and ref
- Why don't you programmers make a living off your own projects?And have to work for someone else?
- MySQL数据库必会的增删查改操作(CRUD)
- The third is the code to achieve
- Musk talks to the "virtual version" of Musk, how far is the brain-computer interaction technology from us
猜你喜欢
Reinforcement learning: from entry to pit to shit
(4) Recursion, variable parameters, access modifiers, understanding main method, code block
MySQL based operations
C language from entry to such as soil, the data store
IDEA common shortcut keys and plug-ins
Why don't you programmers make a living off your own projects?And have to work for someone else?
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
开源汇智创未来 | 2022开放原子全球开源峰会OpenAtom openEuler分论坛圆满召开
C language confession code?
(5) final, abstract class, interface, inner class
随机推荐
(6) Enumeration and annotation
高等数学---第九章二重积分
Smartcom Programming Level 4 - Magic Academy Lesson 6
BP神经网络
(Line segment tree) Summary of common problems of basic line segment tree
How Zotero removes auto-generated tags
LocalDate addition and subtraction operations and comparison size
递归实现汉诺塔问题
prompt.ml/15中<svg>标签使用解释
MySQL database must add, delete, search and modify operations (CRUD)
(tree) Last Common Ancestor (LCA)
Recursive implementation of the Tower of Hanoi problem
Summary of Huawei Distributed Storage FusionStorage Knowledge Points [Interview]
Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法
ClickHouse:设置远程连接
MySQL fuzzy query can use INSTR instead of LIKE
微信小程序使用云函数更新和添加云数据库嵌套数组元素
Redis uses sorted set to cache latest comments
WeChat applet uses cloud functions to update and add cloud database nested array elements
两个地址池r2负责管地址池r1负责管dhcp中继