如何从原始分辨率和格式中提取pdf文档中的所有图像?(意思是提取tiff为tiff,jpeg为jpeg等,无需重新采样).布局是不重要的,我不在乎是源图像位于页面上.
我正在使用python 2.7,但如果需要可以使用3.x.
在python代码中,如何有效地将pdf中的某个页面保存为jpeg文件?(使用案例:我有一个python flask web服务器,上传pdf-s,每个页面对应的jpeg-s是商店.)
这个解决方案很接近,但问题是它没有将整个页面转换为jpeg.
我构建了一个结果的熊猫数据框.此数据框充当表.有MultiIndexed列,每行代表一个名称,即index=['name1','name2',...]创建DataFrame时.我想显示这个表并将其保存为png(或任何图形格式).目前,我能得到的最接近的是将其转换为html,但我想要一个png.看起来有类似的问题,如如何将Pandas数据帧/系列数据保存为数字?
但是,标记的解决方案将数据帧转换为线图(而不是表格),而另一个解决方案依赖于PySide,我只想因为无法将其安装在Linux上而远离它.我希望这段代码易于移植.我真的希望使用python可以轻松创建表格.所有帮助表示赞赏.
我认为这应该是一个非常简单的问题,但我无法找到解决方案或有效的搜索关键字.
我只是有这个形象.

黑色边缘是无用的,所以我想剪切它们,只留下Windows图标(和蓝色背景).
我不想计算Windows图标的坐标和大小.GIMP和Photoshop有一些autocrop功能.OpenCV没有?
有些视频的框架有黑色条状边框.我必须从框架中删除它们.我想出了一个粗糙的解决方案:
import sys, cv2, numpy
import Image, scipy
filename = "snap.jpeg"
img = cv2.imread(filename)
def checkEqual(lst):
return len(set(lst)) <= 1 ## <-- This is the maximum length of the set
def removeColumns(image):
for col in range(image.shape[1]):
for ch in range(3):
try:
checkEqual(image[:, col, ch].tolist())
except IndexError:
continue
else:
if checkEqual(image[:, col, ch].tolist()):
try:
image = numpy.delete(image, col, 1)
except IndexError:
continue
else:
pass
return image
img2 = removeColumns(img)
print img.shape, img2.shape ## (480, 856, 3) (480, 705, 3)
Run Code Online (Sandbox Code Playgroud)
在这里,我发现具有相同元素的列和所有具有黑色边框的视频.但即使我将函数中的最大长度checkEqual() …
我将如何找到下图中数字周围空白区域的边界框或窗口?:

高度:762像素宽度:1014像素
类似的东西:{x-bound:[x-upper,x-lower], y-bound:[y-upper,y-lower]}所以我可以剪切到文本并输入tesseract或一些OCR.
我曾想过将图像分割成硬编码的块大小并随机分析,但我认为它太慢了.
示例代码使用pyplot改编自(使用python和PIL如何获取图像中的文本块?):
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
im = Image.open('/home/jmunsch/Pictures/Aet62.png')
p = np.array(im)
p = p[:,:,0:3]
p = 255 - p
lx,ly,lz = p.shape
plt.plot(p.sum(axis=1))
plt.plot(p.sum(axis=0))
#I was thinking something like this
#The image is a 3-dimensional ndarray [[x],[y],[color?]]
#Set each value below an axes mean to 0
[item = 0 for item in p[axis=0] if item < p.mean(axis=0)]
# …Run Code Online (Sandbox Code Playgroud) 我需要用白色替换png图像的透明层。我试过了
from PIL import Image
image = Image.open('test.png')
new_image = image.convert('RGB', colors=255)
new_image.save('test.jpg', quality=75)
Run Code Online (Sandbox Code Playgroud)
但透明层变成黑色。有人可以帮助我吗?