本文目录导读:

- 1️⃣ 提取图片中的文字(OCR-光学字符识别)
- 2️⃣ 提取图片中的主要颜色(调色板)
- 3️⃣ 提取图片中人脸/物体
- 4️⃣ 提取图片中的二维码/条码
- 5️⃣ 提取图片中的表格数据
- 📦 一键提取脚本(综合版)
- ⚡ 快速使用建议
可以的!根据你的具体需求,有多种方法可以“从图片中提取”不同类型的内容,以下是几个实用脚本方案:
1️⃣ 提取图片中的文字(OCR-光学字符识别)
工具: pytesseract + Pillow
# 安装:pip install pytesseract pillow
from PIL import Image
import pytesseract
# 指定tesseract路径(Windows需要)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
def extract_text(image_path):
"""从图片中提取文字"""
img = Image.open(image_path)
text = pytesseract.image_to_string(img, lang='chi_sim+eng') # 中文+英文
return text
# 使用
text = extract_text('screenshot.png')
print(text)
支持: 简体中文、英文、数字、特殊字符
2️⃣ 提取图片中的主要颜色(调色板)
# 安装:pip install colorthief
from colorthief import ColorThief
import matplotlib.pyplot as plt
def extract_colors(image_path, color_count=5):
"""提取图片中的主要颜色"""
color_thief = ColorThief(image_path)
palette = color_thief.get_palette(color_count=color_count)
# 显示色块
plt.imshow([[palette[i] for i in range(color_count)]])
plt.axis('off')
plt.show()
return palette
colors = extract_colors('photo.jpg', 5)
3️⃣ 提取图片中人脸/物体
# 安装:pip install opencv-python
import cv2
def extract_faces(image_path, output_dir='faces/'):
"""提取图片中所有人脸并保存"""
img = cv2.imread(image_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + 'haarcascade_frontalface_default.xml'
)
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
for i, (x, y, w, h) in enumerate(faces):
face = img[y:y+h, x:x+w]
cv2.imwrite(f'{output_dir}face_{i}.jpg', face)
return len(faces)
count = extract_faces('group_photo.jpg')
print(f'提取了 {count} 张人脸')
4️⃣ 提取图片中的二维码/条码
# 安装:pip install pyzbar pillow
from pyzbar.pyzbar import decode
from PIL import Image
def extract_barcode(image_path):
"""从图片中提取二维码/条码信息"""
img = Image.open(image_path)
barcodes = decode(img)
results = []
for barcode in barcodes:
data = barcode.data.decode('utf-8')
barcode_type = barcode.type
results.append({'data': data, 'type': barcode_type})
print(f'类型: {barcode_type}, 内容: {data}')
return results
data = extract_barcode('qrcode.jpg')
5️⃣ 提取图片中的表格数据
# 安装:pip install camelot-py
import camelot
def extract_tables(pdf_or_image_path):
"""从PDF或图片中提取表格"""
tables = camelot.read_pdf(pdf_or_image_path, pages='1', flavor='lattice')
# 保存为CSV
tables[0].to_csv('extracted_table.csv')
# 转为DataFrame
df = tables[0].df
return df
df = extract_tables('report.pdf')
📦 一键提取脚本(综合版)
import os
from PIL import Image
import pytesseract
class ImageExtractor:
def __init__(self, image_path):
self.image_path = image_path
self.img = Image.open(image_path)
def extract_text(self, lang='chi_sim+eng'):
"""提取文字"""
return pytesseract.image_to_string(self.img, lang=lang)
def extract_metadata(self):
"""提取图片元数据(Exif信息)"""
info = {}
exif = self.img._getexif()
if exif:
for tag_id, value in exif.items():
tag = Image.ExifTags.TAGS.get(tag_id, tag_id)
info[tag] = value
return info
def extract_palette(self, colors=5):
"""提取主色调"""
reduced = self.img.quantize(colors)
palette = reduced.getpalette()[:colors*3]
return [(palette[i], palette[i+1], palette[i+2])
for i in range(0, len(palette), 3)]
# 使用
extractor = ImageExtractor('example.jpg')
print('文字内容:', extractor.extract_text())
print('拍摄时间:', extractor.extract_metadata().get('DateTime', '未知'))
⚡ 快速使用建议
| 你需要 | 推荐方案 | 安装命令 |
|---|---|---|
| 提取文字 | OCR | pip install pytesseract pillow |
| 提取人脸 | OpenCV | pip install opencv-python |
| 提取颜色 | ColorThief | pip install colorthief |
| 提取二维码 | Pyzbar | pip install pyzbar |
| 提取表格 | Camelot | pip install camelot-py |
最实用的组合: 如果你想快速从图片“扒”出文字,用第1个OCR脚本即可,准确率很高(特别是清晰图片)。
需要针对某个具体场景(比如批量处理、特定格式图片)优化脚本吗?我可以帮你调整!
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播