VBA+python提取图片中的姓名存到图片文件夹下新建的名为测试Excel文件中,离线操作,超级详细步骤
时间: 2023-07-16 21:15:23 浏览: 80
下面是将图片中的姓名提取出来并存储到Excel文件中的详细步骤:
1. 安装Python和OpenCV库
首先需要安装Python和OpenCV库。Python可以从官网下载,OpenCV库可以通过pip install opencv-python 命令进行安装。
2. 准备图片文件夹及Excel文件
新建一个图片文件夹,将要处理的图片保存到该文件夹中。同时,新建一个Excel文件,用于存储提取出的姓名信息。
3. 编写VBA代码
在Excel中按下Alt + F11,打开VBA编辑器。在VBA编辑器中新建一个模块,并输入以下代码:
```
Sub ExtractNamesFromImages()
'定义变量
Dim folderPath As String
Dim excelFilePath As String
Dim objExcel As Object
Dim objWorkbook As Object
Dim objSheet As Object
Dim row As Integer
'设置文件路径
folderPath = "图片文件夹路径"
excelFilePath = "Excel文件路径.xlsx"
'创建Excel对象
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(excelFilePath)
Set objSheet = objWorkbook.Sheets(1)
'遍历文件夹中的图片
row = 1
For Each file In CreateObject("Scripting.FileSystemObject").GetFolder(folderPath).Files
'使用Python和OpenCV库获取图片中的姓名信息
Set WshShell = CreateObject("WScript.Shell")
cmd = "python C:\extract_name.py " & file.Path
Set oExec = WshShell.Exec(cmd)
Do While oExec.Status = 0
'等待命令执行完成
Loop
'读取Python脚本输出的姓名信息并保存到Excel文件中
Set objTextFile = objExcel.Workbooks.Open(file.Path & ".txt")
strName = objTextFile.Sheets(1).Cells(1, 1).Value
objTextFile.Close False
objSheet.Cells(row, 1).Value = file.Name
objSheet.Cells(row, 2).Value = strName
row = row + 1
'删除Python脚本输出的文本文件
Kill file.Path & ".txt"
Next
'保存Excel文件并关闭对象
objWorkbook.Save
objWorkbook.Close
objExcel.Quit
End Sub
```
注意将代码中的“图片文件夹路径”和“Excel文件路径.xlsx”替换成实际的路径。
4. 编写Python脚本
在Python中新建一个名为extract_name.py的脚本,并输入以下代码:
```
import cv2
import sys
#读取图片文件
imagePath = sys.argv[1]
image = cv2.imread(imagePath)
#提取姓名信息
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faceCascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
for (x, y, w, h) in faces:
roi_gray = gray[y:y + h, x:x + w]
roi_color = image[y:y + h, x:x + w]
text = pytesseract.image_to_string(roi_gray, lang='chi_sim')
#将姓名信息保存到文本文件中
with open(imagePath + ".txt", "w") as file:
file.write(text)
```
需要注意的是,该脚本依赖于Tesseract OCR库。需要先安装该库,并在代码中引入。
5. 运行VBA代码
在VBA编辑器中单击“运行”按钮,或按下F5键,运行VBA代码。代码会自动遍历图片文件夹中的图片,并提取出姓名信息保存到Excel文件中。
以上就是使用VBA和Python提取图片中的姓名并保存到Excel文件中的详细步骤。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)