Python项目实践指南

在这篇文章中,将探讨几个适合Python初学者的项目,旨在提高编程技能和对Python语言的理解。随着完成越来越多的项目,编程能力将得到显著提升。

OpenCV是一个主要用于计算机视觉任务的编程函数库。可以用它来处理图像、调整图像大小、进行目标检测等。将展示如何使用轮廓快速提取文本。

import cv2 import pytesseract # 指定Tesseract-OCR在计算机上的路径 pytesseract.pytesseract.tesseract_cmd = 'path_to_tesseract.exe' # 读取输入图像 img = cv2.imread("input.png") # 将图像转换为灰度 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 执行OTSU阈值处理 ret, img_thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV) # 定义结构形状和核大小 rect_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) # 对阈值图像进行膨胀处理 dilation = cv2.dilate(img_thresh, rect_kernel, iterations=1) # 查找图像中的轮廓 img_contours, hierarchy = cv2.findContours(dilation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # 复制图像用于绘制矩形 im2 = img.copy() # 打开文件以保存结果 file = open("Output.txt", "w+") file.write("") file.close() # 遍历每个轮廓 for contour in img_contours: x, y, w, h = cv2.boundingRect(contour) rect = cv2.rectangle(im2, (x, y), (x + w, y + h), (0, 255, 0), 2) cropped_image = im2[y:y + h, x:x + w] # 裁剪文本块 file = open("Output.txt", "a") text = pytesseract.image_to_string(cropped_image) # 应用OCR file.write(text) file.write("\n") file.close()

以上代码展示了如何使用OpenCV和Tesseract-OCR从图像中提取文本。通过这个过程,可以学习到图像处理和文字识别的基础知识。

假设有一本PDF格式的书籍想要阅读,但是又懒得翻页;如果能够将PDF转换为有声书,那该多好。将使用Python来实现这个功能。

# 导入模块 import PyPDF2 import pyttsx3 # 打开PDF文件 path = open('Book.pdf', 'rb') # 创建PdfFileReader对象 pdfReaderObj = PyPDF2.PdfFileReader(path) # 选择要读取的页面 from_page = pdfReaderObj.getPage(12) content = from_page.extractText() # 使用pyttsx3将文本转换为语音 speak = pyttsx3.init() speak.say(content) speak.runAndWait() # 安装pywin32 pip install pywin32 # 导入模块 import win32com.client # 建立与Outlook的连接 outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") # 访问收件箱 inbox = outlook.GetDefaultFolder(6) # 获取邮件 messages = inbox.Items message = messages.GetFirst() # 循环遍历收件箱中的所有邮件 while True: try: # 打印邮件主题 print(message.subject) message = messages.GetNext() except: message = messages.GetNext() # 下载附件 for attachment in message.Attachments: print(attachment.FileName)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485