AI应用开发相关目录
本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧
适用于具备一定算法及Python使用基础的人群
- AI应用开发流程概述
- Visual Studio Code及Remote Development插件远程开发
- git开源项目的一些问题及镜像解决办法
- python实现UDP报文通信
- python实现日志生成及定期清理
- Linux终端命令Screen常见用法
- python实现redis数据存储
- python字符串转字典
- python实现文本向量化及文本相似度计算
- python对MySQL数据的常见使用
- 一文总结python的异常数据处理示例
- 基于selenium和bs4的通用数据采集技术(附代码)
- 基于python的知识图谱技术
- 一文理清python学习路径
- Linux、Git、Docker常用指令
- linux和windows系统下的python环境迁移
- linux下python服务定时(自)启动
- windows下基于python语言的TTS开发
- python opencv实现图像分割
文章目录
需求概述
图片中存在多个铭牌,这样会影响铭牌中信息抽取精度,由此需利用CV技术对图像进行分割。
代码
import cv2
import numpy as np
import os
from datetime import datetime
# 读取图像
image = cv2.imread(r'C:\Users\12258\Desktop\0.png', cv2.IMREAD_GRAYSCALE)
# 二值化图像,以便更好地检测轮廓
_, thresholded = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
# 检测轮廓
contours, _ = cv2.findContours(thresholded, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 设置轮廓大小的阈值
contour_area_threshold = 5000 # 你可以根据需要调整这个值
# 创建一个与原图同样大小的黑色图像用于绘制轮廓
contour_image = np.zeros_like(image)
flag = 0
# 遍历所有检测到的轮廓
for contour in contours:
# 计算轮廓的面积
area = cv2.contourArea(contour)
# 如果轮廓面积大于阈值,则在图像上绘制轮廓
if area > contour_area_threshold:
# 获取轮廓的边界框
x, y, w, h = cv2.boundingRect(contour)
# 切割图像
cropped_image = image[y:y + h, x:x + w]
# 保存切割后的图像
filename = f'contour_{flag}.png'
print(filename)
cv2.imwrite(os.path.join('output_folder', filename), cropped_image)
cv2.drawContours(contour_image, [contour], -1, (255), 2)
flag += 1
# 显示结果图像
cv2.imshow('Contours above threshold', contour_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果
原图
轮廓提取
分割结果