Articles of image processing

在调整php图像大小时,服务器负载会增加

我有一个PHP脚本,将图像的大小调整为上传的三种不同的分辨率。 当我上传一个图像时,它将其大小调整为300 * 300,80 * 80,800 * 800,并保存原始文件。 我使用的脚本是以下链接https://github.com/blueimp/jQuery-File-Upload/blob/master/example/upload.php 以下图像是服务器的系统监视器。 CPU历史的前两个尖峰是单独上传文件时发生的图像大小调整。 以下是从队列中上传的文件。 在此上传过程中,服务器无法处理其他请求。 当时我无法访问其他页面。 页面加载一半或者根本不加载,或者一旦上载完成,页面加载。 我需要立即解决这个问题。 如何克服这个问题。 我必须为服务器充分。 是否有任何插件为图像resize的Apache或有问题的代码。

在Linux上将AVI帧转换为JPG

Linux上的什么程序将允许您将AVI中的所有帧转换为一系列JPEG文件?

jpegtran优化而不改变文件名

我需要优化一些图片,但不能改变他们的名字。 jpegtran -copy none -optimize image.jpg > image.jpg 但是,这似乎创build一个0的文件大小。当我做到不同的文件名,大小仍然是完全一样的。

图像的“黑色墨水水平”横轴的直方图

我有一个黑白图像(或PDF)文件,并希望得到图像的水平configuration文件的直方图。 也就是说,对于图像中的每一列,我想要列中像素的灰度值的总和。 如果图像是X乘以Y像素,则我将以0(全黑列)和255 * Y(全白列)之间的X数字结束。 请看这个漫画的第二个面板 我想要一个像这样的直方图,但是每个bin都将表示图像中所有x坐标(像素)处的“黑色墨水”。 作为一个穷人的研究生,我只受限于使用Linux命令行,FOSS程序(ImageMagick,gnuplot,Perl,g ++等)。 像GIMP这样的东西只有在我可以通过terminal运行命令时才有用,因为我不能访问GUI。 一个可视化的输出文件将在以后帮助,但没有必要。 有谁知道我可以提取这些信息的方式吗? search“图像configuration文件”只是导致颜色configuration文件的信息。

在openCV中缺lesslibcxcore.so.2

我试图在Ubuntu上运行一些预编译的代码(源代码不可用),这需要安装openCV。 我安装了最新版本的openCV(来自SVN),并且根据openCV网站上的debian安装指南(cmake – > make – > sudo make install)安装了它,一切似乎都很顺利。 现在,当我尝试运行预编译的代码时,我收到错误“./stipdet:加载共享库时出错:libcxcore.so.2:无法打开共享对象文件:没有这样的文件或目录”似乎其他人谁有类似的问题设法解决它通过将libcxcore.so.2从opencv库文件夹移动到其他地方,但我没有在我的opencv文件夹libcxcore.so.2。 除此之外,我还看到了libopencv_core.so.2.2。 难道在最新版本的openCV中libcxcore的名字已经改变了吗? 还是我没有正确安装? btw:在terminal上运行findlibcxcore什么都不返回

ffmpeg将avi分成具有已知帧速率的帧

我发布这个评论在这个相关的线程 。 但是,他们似乎没有注意到=( 我用过了 ffmpeg -i myfile.avi -f image2 image-%05d.bmp 将myfile.avi分割成存储为.bmp文件的帧。 这似乎工作,但不完全。 录制我的video时,我以1000fps的速度录制,video结果是2分2min29sec 。 如果我的math是正确的,那么整个video总共应该有149,000帧 。 但是,当我跑了 ffmpeg -i myfile.avi -f image2 image-%05d.bmp 我只获得了4472个文件。 我怎样才能得到原来的149k帧? 我也尝试通过做我的原始AVI的帧速率转换为1000fps ffmpeg -i myfile.avi -r 1000 otherfile.avi 但是这似乎并没有解决我的问题。

在opencv中使用Mat :: at(i,j)作为二维Mat对象

我使用的是Ubuntu 12.04和opencv 2 我写了下面的代码: IplImage* img =0; img = cvLoadImage("nature.jpg"); if(img != 0) { Mat Img_mat(img); std::vector<Mat> RGB; split(Img_mat, RGB); int data = (RGB[0]).at<int>(i,j)); /*Where i, j are inside the bounds of the matrix size .. i have checked this*/ } 问题是我在数据variables中获得负值和非常大的值。 我想我在某个地方犯了一些错误。 你能指出一下吗? 我一直在阅读文档(我还没有完成它..这是相当大的。)但从我读过的,这应该工作。 但它不是。 这里怎么了?

C ++:在Windows上使用C ++读取和写入BMP文件最简单的方法是什么?

我想加载一个BMP文件,在内存中执行一些操作,并在Windows(Win32 native)上使用C ++输出一个新的BMP文件。 我知道ImageMagick和它的C ++绑定Magick ++ ,但我认为这是一个矫枉过正的项目,因为我目前对其他文件格式或平台不感兴趣。 在代码设置读取和写入BMP文件方面,最简单的方法是什么? 答案可能是“只使用Magick ++,这是最简单的”。 相关问题: 什么是最好的image processing库?

我如何在小型c ++项目中使用tesseract ocr(或任何其他免费的ocr)?

所以我研究后听到的是,唯一的免费的OCR选项是Tesseract或CuneiForm。 现在,Tesseract文档是非常可怕的,他们给你的只是一堆Visual Studio代码(对于我来说,在Windows上),从那里你可以在自己的API的海洋中独自使用。 所有你能做的就是使用编译的exe,然后在tiff图像上使用它。 我期望至less有短的文档,告诉你如何拉他们的API调用使用OCR至less为一个小例子,但不,在他们的文档中没有这样的。 CuneiForm:我下载了它,“伟大”一切都是用俄语。 🙁 这些家伙真的很难拉扯一个小例子,而是提供给我们大量90%的人无法达到的不相关的信息,你怎么能到达那里,而不是从小事情开始,他们没有解释! 所以我有一堆的API,但如果解释无处,我该如何使用它?也许有人可以提供给我的build议和解决scheme? 我不是要求一个奇迹,只是一些小的东西给我看看事情是如何运作的。

OpenCV和Qt VideoCapture不能在Windows上打开正确的摄像头

我正在使用opencv和Qt创build一个应用程序。 在应用程序内部,我创build了一个loggingvideo的小工具。 由于这个原因,而不是阻塞主事件线程,我创build了一个单独的对话框,其中包含一个logging线程。 在这个线程初学者,我只想看到相机输出(我还没有介绍录音代码)。 所以我subclassed QThread和run()函数如下: void VideoRecordThread::run(){ cv::VideoCapture capture; cv::Mat frame; QImage img; qDebug() << "Opening camera" << cameraIndex ; capture.open(cameraIndex); if(!capture.isOpened()){ qDebug() << "Could not open camera" << cameraIndex; emit threadReturned(); return; } while(!stopFlag){ capture >> frame; qDebug() << "Frame Width = " << frame.cols << "Frame Height = " << frame.rows; if(frame.cols […]