为Mathematica提供非文本PDF?

时间:2015-12-04 15:09:01

标签: matlab pdf image-processing wolfram-mathematica

我想从我的高质量PDF文档中准备一个数据选择,这些文档没有文本元素(只是一个图),最初是由Matlab编写的。 我不想为我的同事们提供全貌,因为它太过于无法抗拒。

Matlab中的#1工具

我知道这个帖子How can I read an image file that is stored in PDF format (much like reading a jpeg file with I = imread('image.jpg')?但我拒绝了同事的经验和我的任务PDF应该足够了,因为我的数据只是一个没有文本元素的高质量情节。 最相关的主题就是这一个How to extract data from pdf file in matlab? 大多数尝试都基于将PDF提取到TXT,例如关于 pdftotext How to Read PDF file in Matlab?

我现在想要imcrop PDF,以便输出可用于Mathematica here的时间序列分析,但我没有找到Matlab的默认imcrop工具正在支持PDF,Crop an Image。 一些调查结果

  • ShowSave as PDF基于answer。我做pdf = Import[filename.pdf]; Show[pdf[[1]], PlotRange -> {{50, 200}, {100, 300}}]我在图像查看器中看到了一个很好的选定图片,但是在将图片导回Mathematica时看到完整图片时失败了。 为什么? PlotRange不会裁剪,只会在Mathematica中的图片顶部放置一个可以分隔的白色面具。
  • 根据此ImageCropShow转到answer。错误的方法,与ImageTake混淆。
  • 根据此answerShow转到ImageTakeShowImageTake彼此不是唯一的,因为根据手册,ImageTake至少反转了参数{ymin,ymax}, {xmin,xmax}的顺序。但是,我无法通过反转参数来选择正确的选择。的为什么吗

对Mathematica的评论

如果所选区域彼此对应,那就太好了。 因此,我想有一些可视化工具从图中选择适当的区域。 我注意到放大原始图像时会出现一些锯齿现象。 很高兴知道Mathematica如何用ImageTake处理这种情况。

如何为Mathematica的时间序列工具箱准备PDF图像? 我认为这个问题是关于图像提取的。 但是,我将问题扩展到Mathematica的线程Better Colormap of Matlab and Image Extraction for Time-Series Toolbox of Mathematica?

1 个答案:

答案 0 :(得分:1)

Mathematica会将您的PDF作为图形对象导入,您可以使用plotrange“裁剪”。

ItemsSource

请注意“点数”中的值为pdf = Import[filename.pdf]; Show[pdf[[1]], PlotRange -> {{50, 200}, {100, 300}}]

您还可以栅格化,然后使用{{xmin,xmax},{ymin,ymax}}

ImageTake

这里的值是ImageTake[Rasterize[pdf[[1]]], {10, 100}, {20, 100}] (注意相反的顺序)

注意{ymin,ymax} , {xmin,xmax}这里实际上是页码。即使[[1]]是单页,我也非常确定Import会返回一个页面列表。

如果你想真正提取作为另一个问题的情节数据。为此,我建议使用mathematica.stackexchange.com并提供示例文件。