Articles of image processing

运行ImageMagick转换低质量PDF到图像(用于OCR)的最佳参数是什么?

我有几个低质量的PDF文件。 我想使用OCR – 更精确地从他们的文本Ocropus 。 要使用,我使用第一个ImageMagick – 一个命令行工具将PDF转换为图像 – 将这些pdf转换为jpg或png。 然而,ImageMagick产生的图像质量很低,Ocropus很难识别任何东西。 我想了解处理低质量pdf的最佳参数是什么,以便向OCR提供质量尽可能好的图像。 我find了这个页面 ,但是我不知道从哪里开始。

从mp4创buildGIFanimation的最快方法

我必须批量处理很多(200,000+)短mp4s(less于10s)成GIFanimation。 我想我已经尝试过所有可能的命令行方式,但是制作高质量的gif仍然需要很长的时间。 目前我使用ffmpeg来解压图像(jpg)帧,并且图像magick转换来组装它们。 它生成高质量的gif,但花费太长时间,并使用太多的内存和CPU,即使调整了限制内存和地图的限制。 我也尝试直接使用ffmpeg创buildanimationGIF,但质量是可怕的充其量。 另外,我尝试过使用Gifsicle,但似乎很快,但它只是将gif作为input,并使用ffmpeg生成它们会产生质量较差的gif。 有没有人有一些命令行食谱的快速高品质的GIF创作?

Windowsimage processing问题

绝对新手在这个空间,所以请调整:-) 这必须在Windows(C + +或.net的确定) 问题是我有一套图像(例如说一副牌) 给定一个子图像,比如说一个Ace或者5个钻石或者任何我需要从原始集合中find所有包含新图像的图像。 它相当类似于子string的问题,除了你不能做一个二进制比较,因为子图像的方向可能有点不同,或者偏离了一点点,所以二进制比较会失败,但只看图像是非常明显的存在匹配。 这是二维图像问题,只是不像面部识别这样的自由度可以说太多了。 我正在寻找可能解决了这个问题的第三方库 TIA

在C ++中将图像读入像素matrix

我已经用OleLoadPictre将图像读入LPPICTURE ,并将其显示在一个窗口中,但是我真正需要做的是将图像转换为像素matrix,然后将其保存回图像文件。 使用OleLoadPicture ,我可以读取几乎所有的主要图像格式。 如果我可以访问单个像素,我可以循环并提取它们。 在其他相关的问题中,人们build议使用像OpenCV这样庞大的库和其他高度开发的库,这些库都在阳光下做一切事情,但我宁愿保持我的解决scheme尽可能轻。 我已经为我的像素写了一个基本的结构,我很乐意自己做这个操作。 我一直在用Magic ++来查看ImageMagic库。 看起来相当不错,但是如果只是使用Windows API提取像素并将图像保存为任意图像格式,那么我认为这是最好的/最轻的解决scheme。

如何打开一个文件菜单,然后在Python中打开该外部.exe文件后点击其子菜单中的一个?

我有什么是图像纹理分析软件 – 马自达作为.exe文件。 我需要打开这个文件,点击菜单中的“文件”,然后点击子菜单“加载macros”,全部用Python。 在互联网上search,让我的结果使用鼠标hover技术。 有没有什么直接的方法可以帮助我们做到这一点?

用OpenCV减去stream离失所的掩码

我想要做: masked = image – mask 但我想“取代” mask 。 也就是说,将其垂直和水平移动(只要它与image的交点不是空的,这将是有效的)。 我有一些手工编码的程序集(使用MMX指令),它embedded在C ++程序中,但在垂直位移时不稳定,所以我想用OpenCV代替。 这样做只能调用一个OpenCV函数吗? 性能至关重要; 使用OpenCV,时间应至less与汇编代码的数量级相同。 编辑 :这是一个例子 image (中等框架,看男人的头骨对比): mask (第一帧,没有对比): image – mask ,没有位移。 注意对比path是如何增强的,但是由于病人稍稍移动,我们可以看到一些颅骨轮廓,这些轮廓是用于诊断目的的视觉噪声。 image – mask , 面具向下移动约5个像素 。 为了弥补患者运动产生的噪音,我们将面罩略微“移位”,以消除轮廓,更好地观察对比度(调整亮度和对比度,这就是为什么看起来更暗)。 编辑2 :关于algorithm,我设法解决它的问题。 它不会崩溃,但缺点是它现在处理所有的图像像素(它应该只处理那些需要被减去)。 无论如何,如何修复旧的代码不是我的问题; 我的问题是,如何使用OpenCV做这个处理? 我稍后会发布一些性能分析结果。

帧到video – 在Windows 8中的image processing(仅限WinRT)

有没有办法处理stream(或图像文件或video文件)的帧,并保存在编码的video文件的帧。 有选项可将帧保存到编码的图像文件,但不能使用Windows.Graphics.Imaging命名空间保存为video文件。 在mediaCapture.StartRecordToStreamAsync中,我可以使用StartRecordToStorageFileAsync将video文件摄像头的stream保存到另一个video文件。 但是没有办法逐帧保存。 感谢帮助!

如何水印animationGIF并将2个ImageMagick命令组合在一起?

我在Windows 7机器上使用imagemagick从命令行。 以下代码可以为图像添加水印: composite \ -watermark 30% \ -gravity south \ the_watermark.png \ pic_to_be_watermaked.png \ watermark_completed.png 问题是: 当我尝试水印animationGIF时,它不起作用 如何结合下面的命令使用这个水印命令? 该命令将文件夹“static_images”中的所有PNG合并为一个animationGIF。 它也确保图像宽度为350px,高度保持适当的高宽比。 它也给图像一些模糊和animation的速度设置为4,并确保它无限循环: convert \ -resize 350×350 \ -fuzz 1.6% \ -delay 4 \ -loop 0 \ static_images/*.png \ -layers OptimizePlus \ -layers OptimizeTransparency \ animated_gif.gif 问题: 如何将水印命令与上面的命令结合起来? 我怎样才能获得水印服务与animationGIF?

在windows上安装的nodejs上的graphicsMagick不起作用,imageMagick抛出错误

我正在运行graphicsMagick随着节点在Windows上。 我想调整图像大小并降低质量。 以下是我的代码。 虽然我没有任何错误,但图像的质量没有改变,质量也没有下降。 以下是我的代码。 var gm = require('gm'), graphicsMagick = gm.subClass({imageMagick: true}); //resizing image with graphicsMagick and storing in the same path graphicsMagick(fullPathFileName) .resize(null, 150) .noProfile() .quality(70) .write(fullPathFileName, function (err) { if (!err) console.log('Image resized'); }); 更多imageMagick安装。 虽然,我应该同意,当我通过需要图像魔术直接在节点中使用imageMagick时,我得到了链接imagemagick中描述的错误与nodejs不工作,所以而不是imageMagick我需要graphicsMagick,现在没有错误,但没有发生在文件上。 在需要imageMagick时产生错误的代码是 – > var im = require('imagemagick'); im.resize({ srcPath: fullPathFileName, dstPath: fullPathFileName, height: 150, quality: 0.8, […]

从程序中直接与graphics卡交互获取图像?

我正在尝试在Windows 10上使用Python的Pillow来截取应用程序的屏幕截图。 此应用程序直接与graphics卡交互,因此不会在程序中获取图像,而是返回黑色图像。 我怎样才能从这个应用程序提供的graphics截图。 这里有不同的方法,我尝试了PILimport当然。 im=ImageGrab.grab() ImageGrab.grab_to_file('im.png') hwnd = win32gui.GetForegroundWindow() wDC = win32gui.GetWindowDC(hwnd) dcObj=win32ui.CreateDCFromHandle(wDC) cDC=dcObj.CreateCompatibleDC() dataBitMap = win32ui.CreateBitmap() dataBitMap.CreateCompatibleBitmap(dcObj, w, h) cDC.SelectObject(dataBitMap) cDC.BitBlt((0,0),(w, h) , dcObj, (0,0), win32con.SRCCOPY) dataBitMap.SaveBitmapFile(cDC, 'tmp.bmp') # Free Resources dcObj.DeleteDC() cDC.DeleteDC() win32gui.ReleaseDC(hwnd, wDC) win32gui.DeleteObject(dataBitMap.GetHandle())