#处理一个包含手写图像的文件夹,对每个图像进行灰度化、二值化、膨胀 图像处理操作,
# 并使用连通组件分析来识别和标记小于一定面积的区域
import cv2 as cv # 导入OpenCV库,并简称为cv
import numpy as np # 导入NumPy库,用于数学运算和数组操作
import os # 导入os库,用于处理文件和目录
# 设置原始图像文件夹路径
orig_path = r"D:\Blog\work2\Picture"
img_list = [f for f in os.listdir(orig_path) if
f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp'))] # 列出文件夹中所有图像文件的名称
# 创建一个3x3的单位矩阵作为膨胀操作的核
kernel = np.ones((3, 3), np.uint8)
# 遍历文件夹中的每个图像文件
for img_name in img_list:
img_path = os.path.join(orig_path, img_name) # 构建图像的完整路径
img = cv.imread(img_path) # 读取图像
if img is None: # 如果图像读取失败(例如文件不是图像或文件损坏)
print(f"Warning: Unable to read image {img_name}") # 打印警告信息
continue # 跳过当前循环迭代,继续下一个图像
img_resize = cv.resize(img, (600, 600)) # 将图像大小调整为600x600
img_gray = cv.cvtColor(img_resize, cv.COLOR_RGB2GRAY) # 将图像转换为灰度图
ret, img_bw = cv.threshold(img_gray, 200, 255, cv.THRESH_BINARY) # 使用固定阈值进行二值化处理
img_open = cv.dilate(img_bw, kernel, iterations=3) # 对二值图像进行3次膨胀操作
#cv.imshow("img_open", img_open) #图像膨胀后
# 使用连通组件分析,找出图像中的所有连通区域及其属性
num_labels, labels, stats, centroids = \
cv.connectedComponentsWithStats(img_open, connectivity=8, ltype=None)
# 遍历每个连通区域的统计信息
for i, sta in enumerate(stats):
if i == 0: # 忽略背景区域(标签为0的区域)
continue
if sta[4] < 1000: # 如果区域的面积小于1000像素
# 在原二值膨胀图像上标记该区域(用红色填充)
cv.rectangle(img_open, tuple(sta[0:2]), tuple(sta[0:2] + sta[2:4]), (0, 0, 255), thickness=-1)
# 展示图像
#cv.imshow("img_resize", img_resize)#原图
#cv.imshow("img_gray", img_gray)#灰度处理后
#cv.imshow("img_bw", img_bw) # 二值处理后
#cv.imshow("img_bw", img_bw) # 二值处理后
cv.imshow("img_open", img_open)#连通后
# 等待用户按键,如果按下'q',则退出循环
if cv.waitKey(0) & 0xFF == ord('q'):
break
#print("*" * 50) # 打印分割线
cv.destroyAllWindows() # 销毁所有OpenCV创建的窗口

物联通信社区
- 粉丝: 54
最新资源
- 混合高斯模型中期望最大算法的实现方法探讨
- 关于混合高斯模型的期望最大算法的实现
- 一款强大的大模型微调数据集生成和管理工具
- 使用LLaMA-Factory微调多模态大语言模型的示例代码 Demo of Finetuning Multimodal LLM with LLaMA-Factory
- 基于大语言模型 API 的外挂知识库问答系统(含 neo4j 知识图谱实现)
- 数据库课程设计研究报告学生成绩管理系统.doc
- 信息技术课中的生活算法之一-操作教学.docx
- 简析互联网时代高职教育新发展.docx
- 试论中职教师信息化教学创新的研究.docx
- ASP企业员工管理系统的方案设计书与实现.doc
- 东莞理工学院C语言程序设计方案作业实验二.docx
- 试论工程项目管理的科学化.docx
- 基于大语言模型API(本地或商用API)的外挂知识库问答系统(附neo4j实现知识图谱)
- 用大数据思维提升职业教育学生的双创能力.docx
- PLC控制运料小车的方案设计书1.doc
- 优质模板旅游管理电子商务毕业论文答辩演讲课件ppt模板.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


