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中获得负值和非常大的值。 我想我在某个地方犯了一些错误。 你能指出一下吗? 我一直在阅读文档(我还没有完成它..这是相当大的。)但从我读过的,这应该工作。 但它不是。 这里怎么了?

OpenCV cvCaptureFromCAM返回零

我的笔记本电脑上安装了OpenCV 2.1,并试图实施一个人脸检测程序。 我为我的项目使用罗技C210。 我知道相机是好的,因为软件检测并显示它,并在示例目录中启动facedetect.exe显示相机正在工作。 但不知何故,当我在VS2010旗舰版中使用原始的facedetect.cpp代码时,我甚至无法使用cvCaptureFromCAM工作! 这是我的代码: #include "stdafx.h" #include <iostream> #include "cv.h" #include "highgui.h" using namespace std; using namespace cv; int main(int, char**) { IplImage* frame; // CvCapture* cap = cvCaptureFromCAM(-1); // cvNamedWindow( "Example2_9", CV_WINDOW_AUTOSIZE ); CvCapture* capture; cvWaitKey(20); capture = cvCreateCameraCapture( -1 ); //yes, if 0 doesn't work try with -1 //assert( capture != […]

访问图像的Windows“标签”元数据字段

我试图把手放在一些image processing。 所以现在我正在尝试读取图像exif数据。 那么有2个内置函数可用于读取图像的exif数据。 问题是,我想读取图像标签。 exifread和imfinfo这两个函数都不显示图像标签。 有没有办法读取图片标签? 就像这张图片中突出显示的标签一样

关于RGB图像上的不同颜色input

我正在写一个代码在Visual Studio的OpenCV的C + +,可以用任何不同的颜色填充图像像黑色[与RGB值0,0,0],但根据我的目标。 我需要通过考虑包含9个像素的图像中的3 * 3像素的小matrix来填充图像的颜色,根据条件一次填充9像素中的每一个像素。 但我无法做到。 代码在这里下面,生成的输出是一个黑线,而不是黑点。 PLZ帮助我,在此先感谢 //code for initializing while(count<kernel_index){ for(row_x=init_row; row_x <=(init_row+2); row_x++){ Vec3b *ptr3 = image.ptr<Vec3b>(init_row); for(col_y=init_col; col_y<=(init_col+2); col_y++){ //reference is taken Vec3b &pixel= ptr3[col_y]; //some condition to fill the black color //pointer for a pixels and allocating to Vec3b variable pixel[0] = 0; pixel[1] = 0; pixel[2] = […]