Tag: matrix

OCR和字符相似

我目前正在研究某种OCR(光学字符识别)系统。 我已经写了一个脚本来从文本中提取每个字符,并清除(大部分)违规行为。 我也知道字体。 我现在的图片例如是: M( http://i.imgur.com/oRfSOsJ.png (font)和http://i.imgur.com/UDEJZyV.png (扫描)) K( http://i.imgur.com/PluXtDz.png (font)和http://i.imgur.com/TRuDXSx.png (扫描)) C( http://i.imgur.com/wggsX6M.png (font)和http://i.imgur.com/GF9vClh.png (扫描)) 对于所有这些图像,我已经有了一种二进制matrix(1为黑色,0为白色)。 我现在想知道是否有某种类似math投影的公式来看这些matrix之间的相似性。 我不想依靠图书馆,因为这不是我的任务。 我知道这个问题可能看起来有点模糊,也有类似的问题,但我正在寻找的方法,而不是一个包,到目前为止我找不到任何有关该方法的意见。 这个问题含糊不清的原因是我真的没有开始的意思。 我想要做的是在维基百科实际上这里描述: matrix匹配涉及将图像与存储的字形逐像素地进行比较; 它也被称为“模式匹配”或“模式识别”[9]。 这依赖于input字形与图像的其余部分正确隔离,并且存储的字形具有相同的字体和相同的比例。 这种技术最适合打印文字,遇到新字体时效果不佳。 这是早期的基于光电pipe的OCR技术所实现的技术,相当直接。 ( http://en.wikipedia.org/wiki/Optical_character_recognition#Character_recognition ) 如果有人能帮我解决这个问题,我将非常感激。

Javamatrixmath库的性能?

我们正在计算一些运行时受matrix运算约束的东西。 (如果感兴趣,下面有些细节。)这个经验提示下面的问题: 民间有经验的matrixmath(例如,乘法,逆等)Java库的性能? 例如: JAMA 小马 阿帕奇公用math 我search,什么也没找 我们的速度比较的细节: 我们正在使用英特尔FORTRAN(ifort(IFORT)10.1 20070913)。 我们已经用Java(1.6)重新实现了它,使用了Apache commons math 1.2matrix操作,并且它同意所有的数字的准确性。 (我们有理由希望在Java中。)(Java双打,Fortran真正* 8)。 Fortran:6分钟,Java 33分钟,同一台机器。 jvisualm分析显示在RealMatrixImpl中花了很多时间{getEntry,isValidCoordinate}(似乎已经在未发行的Apache commons math 2.0中消失了,但是2.0不会更快)。 Fortran正在使用Atlas BLAS例程(dpotrf等)。 显然这可能取决于我们在每种语言中的代码,但是我们相信大部分时间是在等效的matrix运算中。 在其他一些不涉及库的计算中,Java的速度并不是很慢,有时候要快得多。

根据inputdynamic二维数组

我需要从用户那里得到一个inputN并生成一个N * Nmatrix。 我怎样才能声明matrix? 一般来说,数组和matrix的大小应该在声明中是固定的,对吗? 那么vector<vector<int>>呢? 我从来没有使用过,所以我需要老兵的build议。

MATLAB中未知长度的matrix?

我试图build立一个两列可变长度的零matrix,我可以输出一个while循环的结果(打算用它来存储从调整时间步骤的欧拉方法的步骤数据)。 长度将由循环的迭代次数决定。 我想知道是否有一种方法可以在运行循环时执行此操作,或者是否需要将其设置为开始,以及如何执行此操作。

如何将matrix子集合到一列,维护matrix数据types,维护行列名?

当我将一个matrix子集到一个列时,结果是类数字,而不是matrix(即myMatrix [,5]子集到第五列)。 有没有一种紧凑的方法来join一个列,维护matrix格式,并维护行/列名,而不需要做一些复杂的事情: matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )

在JavaScript中转换2D数组

我有一个数组的数组,如下所示: [ [1,2,3], [1,2,3], [1,2,3], ] 我想转置它来获得以下数组: [ [1,1,1], [2,2,2], [3,3,3], ] 使用循环以编程方式执行并不困难: function transposeArray(array, arrayLength){ var newArray = []; for(var i = 0; i < array.length; i++){ newArray.push([]); }; for(var i = 0; i < array.length; i++){ for(var j = 0; j < arrayLength; j++){ newArray[j].push(array[i][j]); }; }; return newArray; } 然而,这似乎很笨重,我觉得应该有一个更简单的方法来做到这一点。 在那儿?

在MATLAB中使用转置与ctranspose

在MATLAB中转置vector/matrix时,我已经看到并长时间使用' (撇号)运算符。 例如: >> v = [ 1 2 3 ]' v = 1 2 3 然而,这是我最近发现的或ctranspose的共轭转置 。 这似乎只在涉及复数时才重要,如果你想转置一个matrix而不得到共轭,你需要使用.' opertator。 这是不错的做法.' 对于真正的matrix和向量呢? 我们应该教什么MATLAB初学者?

在Matlab中有效地计算欧氏距离的成对平方

给定两组d维分。 我怎样才能最有效地计算Matlab中的平方欧氏距离matrix ? 符号:设置一个由(numA,d)matrixA给出,并且设置两个由(numB,d)matrixB 。 得到的距离matrix应该是格式(numA,numB) 。 示例点: d = 4; % dimension numA = 100; % number of set 1 points numB = 200; % number of set 2 points A = rand(numA,d); % set 1 given as matrix A B = rand(numB,d); % set 2 given as matrix B

Java中的稀疏matrix/数组

我正在开发一个用Java编写的项目,这个项目要求我构build一个非常大的二维稀疏数组。 非常稀疏,如果这有所作为。 无论如何:这个应用程序的最关键的方面是时间效率(假设内存负载,尽pipe没有那么大的限制,使我可以使用标准的二维arrays – 关键的范围是在两个数十亿)。 在arrays中的kajillion单元格中,将会有数十万个包含对象的单元格。 我需要能够很快修改单元格内容。 无论如何:有没有人知道这个目的特别好的图书馆? 它必须是伯克利,LGPL或类似的许可证(没有GPL,因为产品不能完全开源)。 或者,如果只有一个非常简单的方法来制作一个自制稀疏数组对象,那也可以。 我正在考虑MTJ ,但没有听到任何意见的质量。

在一个螺旋循环

一个朋友需要一个algorithm,让他循环一个NxMmatrix的元素(N和M是奇数)。 我提出了一个解决scheme,但我想看看我的同事是否可以提出一个更好的解决scheme。 我发布我的解决scheme作为这个问题的答案。 输出示例: 对于3x3matrix,输出应该是: (1,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)(-1,-1)(0,-1)(1,-1 ) 此外,该algorithm应该支持非平方matrix,例如对于一个5x3matrix,输出应该是: (1,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)(-1,-1)(0,-1)(1,-1 )(2,-1)(2,0)(2,1)(-2,1)(-2,0)(-2,-1)