Tag: image processing

用node.js下载图像

我正在尝试编写一个脚本来使用node.js下载图像。 这是我迄今为止: var maxLength = 10 // 10mb var download = function(uri, callback) { http.request(uri) .on('response', function(res) { if (res.headers['content-length'] > maxLength*1024*1024) { callback(new Error('Image too large.')) } else if (!~[200, 304].indexOf(res.statusCode)) { callback(new Error('Received an invalid status code.')) } else if (!res.headers['content-type'].match(/image/)) { callback(new Error('Not an image.')) } else { var body = '' […]

OpenCV 2.2中的像素访问

您好我想使用opencv来告诉我一个空白和白色图像的像素值,所以输出看起来像这样 10001 00040 11110 00100 这是我目前的代码,但我不知道如何访问CV_GET_CURRENT调用的结果..任何帮助? IplImage readpix(IplImage* m_image) { cout << "Image width : " << m_image->width << "\n"; cout << "Image height : " << m_image->height << "\n"; cout << "—————————————–\n"; CvPixelPosition8u position; CV_INIT_PIXEL_POS(position, (unsigned char*)(m_image->imageData), m_image->widthStep, cvSize(m_image->width, m_image->height), 0, 0, m_image->origin); for(int y = 0; y < m_image->height; ++y) // FOR EACH […]

为什么我不能在openCV中打开AVIvideo?

我刚刚写了一个简单的video阅读与openCV2.3.1的例子,但似乎无法打开AVIvideo:( VideoCapture capture("guitarplaying.avi"); if(!capture.isOpened()){ std::cout<<"cannot read video!\n"; return -1; } Mat frame; namedWindow("frame"); double rate = capture.get(CV_CAP_PROP_FPS); int delay = 1000/rate; while(true) { if(!capture.read(frame)){ break; } imshow("frame",frame); if(waitKey(delay)>=0) break; } capture.release(); 我在std::cout<<"cannot read video!\n"做了一个断点std::cout<<"cannot read video!\n"并且发现它每次都停在这里。 那么,为什么AVIvideo无法打开? 谢谢!

在Python中实现MATLAB的im2col'sliding'

问:如何加快速度? 下面是我的Matlab的im2col '滑动'的实现与附加function返回每第n列。 该函数将图像(或任何2个暗淡的数组)从左到右,从上到下滑动,挑选给定大小的每个重叠的子图像,并返回一个数组,其列是子图像。 import numpy as np def im2col_sliding(image, block_size, skip=1): rows, cols = image.shape horz_blocks = cols – block_size[1] + 1 vert_blocks = rows – block_size[0] + 1 output_vectors = np.zeros((block_size[0] * block_size[1], horz_blocks * vert_blocks)) itr = 0 for v_b in xrange(vert_blocks): for h_b in xrange(horz_blocks): output_vectors[:, itr] = image[v_b: v_b + […]

计算旋转的2D图像的平移值和旋转angular度

我有两个图像,其中之一是原始图像,第二个是转换的图像。 我必须找出有多less度转换图像旋转使用3×3转换matrix。 另外,我需要find从原点转换多远。 这两个图像都是灰度并保存在matrixvariables中。 他们的大小是相同的[350 500] 。 我发现了这样的几个讲义。 讲义说,我应该使用下面的matrix公式进行轮换: 对于平移matrix,给出公式: 一切都很好。 但是有两个问题: 我无法想象如何使用MATLAB来实现公式。 公式的形状是findx' , y'值,但我已经得到了x , x' , y , y'值。 我需要find旋转angular度(θ)和t x和t y 。 我想知道matrix中x , x' , y , y'的等价性。 我有以下代码: rotationMatrix = [ cos(theta) sin(theta) 0 ; … -sin(theta) cos(theta) 0 ; … 0 0 1]; translationMatrix = [ 1 0 […]

在MATLAB中调整3Dmatrix(图像)的大小

我有一个三维matrix(MxNxK),并想调整它(M'xN'xK')(如imresize在matlab中)。 我正在使用图像金字塔,但其结果不是很准确,需要一个更好的。 任何解决scheme

旋转位图。 在代码中

有一个更快的方法来旋转一个大的位图90或270度,而不是简单地做一个嵌套循环与坐标倒置? 位图是8bpp,通常是2048 * 2400 * 8bpp 目前我通过简单地使用参数反转进行复制,粗略地(伪代码: for x = 0 to 2048-1 for y = 0 to 2048-1 dest[x][y]=src[y][x]; (实际上我是用指针来做的,速度更快一些,但大致相同) GDI对于大图像来说相当慢,并且纹理(GF7卡)的GPU加载/存储时间与当前CPU时间相同。 任何提示,指针? 一个就地algorithm甚至会更好,但速度比就地更重要。 目标是delphi,但它更是一个algorithm问题。 上证所(2)vector化没有问题,这是一个足够大的问题,我编码在汇编 跟随Nils的答案 图片2048×2700 – > 2700×2048 编译Turbo Explorer 2006,并进行优化。 Windows:电源scheme设置为“始终打开”。 ( 重要!!!! ) 机器:Core2 6600(2.4 GHz) 时间与旧例程:32毫秒(第1步) 时间步长8:12ms 时间步长16:10ms 时间步长32+:9ms 同时我也testing了Athlon 64 X2(5200 + iirc),而且速度稍微超过了四倍(80到19毫秒)。 加快是非常值得的,谢谢。 也许在夏天的几个月里,我会用SSE(2)版本来折磨自己。 但是我已经想过如何解决这个问题了,我想我会用完SSE2寄存器来实现一个直接的实现: for n:=0 […]

import com.sun.image.codec.jpeg。*

我有一个Java程序,当我编译它我得到以下错误 [javac] …\MyClass.java:33: package com.sun.image.codec.jpeg does not exist [javac] import com.sun.image.codec.jpeg.*; [javac] ^ 我能做什么 ? 现在写入映像文件的正确方法是不推荐使用com.sun包。

笔画宽度转换(SWT)实现(Java,C#…)

最近我发现了笔画宽度变换,正如下面的研究论文所logging的那样: 用行程宽度变换在自然场景中检测文本 。 鲍里斯Epshtein,Yonathan Wexler和Eyal Ofek。 IEEE计算机视觉和模式识别国际会议,2010年。 该algorithm旨在从自然场景中检测和提取文本。 但是,我找不到任何实现,从文件中我发现很难确定有关algorithm的所有细节,所以我可以在实践中实现它。 有谁知道这个algorithm是否在系统中被实现和使用? 有没有C#或Java的实现?

旋转cv :: Mat使用cv :: warpAffine偏移目标图像

我正在尝试使用OpenCV的C ++ API将1296×968图像旋转 90度 ,并且遇到了一些问题。 input : 旋转 : 正如你所看到的,旋转的图像有一些问题。 首先,它具有与原始大小相同的尺寸,即使我专门创build了与原始尺寸相反的目标Mat 。 结果,目标图像被裁剪。 我怀疑这是因为我打电话warpAffine()并传递原始的大小,而不是目的地大小的Mat 。 但是我这样做是因为我遵循了这个答案 ,但现在我怀疑答案可能是错的。 所以这是我第一个怀疑/问题。 第二个是, warpAffine() 以特定的偏移量写入目的地 (可能将旋转的数据复制到图像的中间),并且该操作在图像周围留下可怕的大黑色边框 。 我如何解决这些问题? 我在下面分享源代码: #include <cv.h> #include <highgui.h> #include <iostream> using namespace cv; using namespace std; void rotate(Mat& image, double angle) { Point2f src_center(image.cols/2.0F, image.rows/2.0F); Mat rot_matrix = getRotationMatrix2D(src_center, angle, 1.0); Mat rotated_img(Size(image.size().height, image.size().width), […]