标签: image-comparison

不规则形状比较

我正在尝试为一些行为心理学研究提出一个评分系统.

我要求人们在图形输入板上画一封信然后追踪它.我想评估这种痕迹的准确性.所以,你绘制任何字母('a'),然后你再做一次,然后我根据它与你第一次绘画时的相似程度得分.附图存储为像素位置.

准确度被评估为与原始信件的接近程度.该方法不需要允许缩放,旋转或位置改变.从概念上讲,它就像两条线之间的区域,只有线条高度不规则,所以积分(据我所知)不会起作用.

我在MATLAB写作,但任何概念上的帮助将不胜感激.我已经尝试将绘制的所有像素之间的最小距离求和,但这给出了良好放置的单点的好(低)分数.

这一定是以前做过的,但我的搜索没有运气.任何帮助非常感谢!

---部分解决方案使用@Bill建议的方法.不起作用,因为bwdist渐变太陡峭.而不是Bill显示的漂亮的第二张图片,它看起来更像是原版.

%% Letter to image 
im = zeros(1080,1920,3); % The screen (possible pixel locations) 
% A small square a bit like the letter 'a', a couple of pixels wide. 
pixthick = 5; 
im(450:450+pixthick,[900:1100],:) = 1; 
im(550:550+pixthick,[900:1100],:) = 1; 
im([450:550],900:900+pixthick,:) = 1; 
im([450:570],1100:1100+pixthick,:) = 1;
subplot(2,1,1); imagesc(im); %% atransbw = bwdist(im(:,:,1)<0.5); subplot(2,1,2); 
imagesc(atransbw);
Run Code Online (Sandbox Code Playgroud)

matlab image-comparison edge

5
推荐指数
0
解决办法
1681
查看次数

卡在Matlab的子图机制上,用于匹配vlfeat的图像点

我在Matlab做vlfeat,我在这里关注这个问题.

以下是我的简单测试图像:

左图:

大号

正确的图像:

[R

我在这里用2个简单的图像做了一个简单的测试(右图像只是左边的旋转版本),我得到了相应的结果:

测试

它有效,但我还有一个要求,即匹配两个图像的SIFT点并显示它们,如下所示:

像这样

我确实理解vl_ubcmatch返回2个匹配索引数组,并且映射它们不是一个问题,哪个点到达两个图像上的哪个点.但是,我目前陷入了matlab的程序.我找到了这个.但这只有在子图保持这种情况下才有效.将图像添加到子图中时,大小会更改,并且标准化失败.

这是我的代码:(im和im2是图像.f,d和f2,d2分别是来自vl_sift函数的帧和描述符,来自2个图像)

    [matches score] = vl_ubcmatch(d,d2,threshold);%threshold originally is 1.5

if (mode >= 2)%verbose 2

    subplot(211);
    imshow(uint8(im));
    hold on;
    plot(f(1,matches(1,:)),f(2,matches(1,:)),'b*');

    subplot(212);
    imshow(uint8(im2));
    hold on;
    plot(f2(1,matches(2,:)),f2(2,matches(2,:)),'g*');

end

if (mode >= 3)%verbose 3

     [xa1 ya1] = ds2nfu(  f(1,matches(1,:)),  f(2,matches(1,:)));
     [xa2 ya2] = ds2nfu( f2(1,matches(2,:)), f2(2,matches(2,:)));

    for k=1:numel(matches(1,:))

        xxa1 = xa1(1, k);
        yya1 = ya1(1, k);
        xxa2 = xa2(1, k);
        yya2 = ya2(1, k);

        annotation('line',[xxa1 xxa2],[yya1 yya2],'color','r');
    end
end
Run Code Online (Sandbox Code Playgroud)

上面的代码产生了这个:

一个

我认为subplot不是一个很好的方法来做这样的事情.在Matlab中有更好的方法吗?如果可能的话,我想要一个类似于空面板的东西,我可以绘制我的图像,自由地绘制线条和自由缩放,就像以OpenGL风格绘制2D游戏一样.

matlab image-comparison computer-vision sift vlfeat

5
推荐指数
1
解决办法
2960
查看次数

匹配模板imge(缩放)到Main /放大图像

我想找到/检查主图像中的subImage /模板图像,并想知道它的坐标,

我使用了以下链接中给出的代码来实现它,

检查iOS中图像中子图像的存在

如果模板图像的大小与较大图像的匹配部分的大小完全相同,则它工作正常.

但是如果子图像按比例缩小或放大而不是匹配较大图像的一部分,则不能正确地给出结果.

opencv image-comparison machine-learning computer-vision template-matching

5
推荐指数
1
解决办法
2352
查看次数

使用OpenCV识别相似(不完全相同)的简单图像?

说我有一个非常简单的图像或形状,如这个棒图画:

在此输入图像描述

我还有一个其他简单图像的库,我想比较第一个图像并确定最接近的匹配:

在此输入图像描述

请注意,这两名男子并不完全相同,但相似.

我希望能够将第一个图像与我的库中的每个图像进行比较,直到找到一个相当接近的匹配.如有必要,我的图像库可能包含同一图像的多种变体,以帮助确定我拥有的图像类型.例如:

在此输入图像描述

我的问题是这是否是OpenCV能够做到的事情?以前是否已经完成,如果是的话,你能指出我的一些例子的方向吗?非常感谢您的帮助.

编辑:通过我的搜索,我发现了许多比较图像的人的例子,甚至是比较已被拉伸或歪斜的图像的人:例如:检查图像与OpenCV的相似性.不幸的是,正如你所看到的,我的图像不仅仅是翻译(旋转/倾斜/拉伸)版本 - 它们实际上是不同的图像,尽管它们非常相似.

opencv image-comparison image-processing computer-vision

5
推荐指数
1
解决办法
3879
查看次数

使用PHP比较图像中的形状

我正在尝试比较php中的形状.我有一个包含大量图像的数据库,在这些图像中有一个形状(大部分位于图像的中心).现在我想将这些图像与Shape进行比较.

输入是一个形状(png),其大小与数据库中的图像完全相同.

我做了一个函数,它采用了形状的颜色并将其变为黑色(背景为白色)

输入是这样的: 在此输入图像描述

原来是这样的: 在此输入图像描述

我可以比较图像中的每个像素并跟踪多少黑色像素是相同的,但这将需要大量的CPU,我认为它不会每次都有效.

我也可以使用像python这样的另一种语言,但我真的想在PHP中解决这个问题.有没有人有想法以实际的方式做到这一点?

问题" 比较php中的2个图像 "中的anwser与我期望的不同.我需要比较图像的一部分(在示例中是白色的背景,但可能是背景中有一些噪点)

php image-comparison gdlib

5
推荐指数
1
解决办法
375
查看次数

从图像C ++识别字符

*注意:尽管这篇文章是关于双线性插值的,但我还是保持标题的一般性,并提供了更多信息,以防有人对如何更好地做到这一点有所了解

为了创建单词搜索解决程序,我一直难以实现从图像中识别字母的方法。出于主要出于教育目的,也出于便携性的目的,我一直在尝试使用不使用库的方法。可以假设,将要拾取字符的图像除了拼图之外没有任何其他内容。尽管此页面只能识别少量字符,但我一直在用它来指导我的工作,这一个也一样 正如文章所建议的,我将每个字母的图像缩小为5x5,以将每个未知字母与之进行比较。通过使用双线性重采样将未知数缩小到5x5,并对已知和未知图像中每个相应像素的强度差的平方求和,我获得了最大的成功。为了尝试获得更准确的结果,我还添加了每个图像的上半部分和下半部分的宽度:高度比率和白色:黑色像素比率之差的平方。然后,将具有与未知图像最接近的“差异分数”的已知图像视为未知字母。问题在于,这似乎只有大约50%的准确性。为了改善这一点,我尝试使用较大的样本(而不是5x5,我尝试使用15x15),但是事实证明效果不佳。我还尝试浏览已知和未知的图像,寻找特征和形状,然后基于具有相同数量的相同特征的两个图像确定匹配项。例如,识别并计数了以下形状:?代表黑色像素)。事实证明,这种方法不如原始方法有效。

  ? ?                 ?   ?
  ?                     ?
Run Code Online (Sandbox Code Playgroud)

因此,这里是一个示例:加载以下图像:

物理词搜索

然后,该程序通过使用面积总和表确定每个像素的强度是否高于或低于11x11平方的平均强度,将其转换为单色,修复倾斜并通过识别相对相等间距的区域来挑选字母。然后,我使用相交的水平和垂直空间来大致了解每个字符的位置。接下来,我要确保在每个方块中都包含整个字母,方法是在原始方块的上方,下方,左侧和右侧逐行查找,直到该方块的边界未检测到深色像素为止。

单词搜索处理

然后,我将每个字母都重新采样,然后将其与已知图像进行比较。

*注意:已知样本使用的字体大小为12,使用双线性插值法在photoshop中重新缩放为5x5。

这是一个成功匹配的示例:选出以下字母:

ñ

缩小为:

N标度

看起来像

N小

远道而来。这已成功匹配已知的N个样本:

N已知

这是失败的比赛:

[R

被挑选出来并缩小为:

R缩放

毫不奇怪,它与已知的R样本不匹配

R已知

我更改了图像的拾取方式,以致如上图所示,该字母不会被截断,因此我认为问题出在缩小图像上。目前,我正在使用双线性插值对图像进行重新采样。要了解究竟是如何工作原理与采样我提到的第二个答案的这个职位,并用下面的代码上来。以前,我已经测试过此代码可以正常工作(至少达到“看起来不错”的程度),因此它可能是引起问题的多种因素的组合。

void Image::scaleTo(int width, int height)
{
    int originalWidth = this->width;
    int originalHeight = this->height;
    Image * originalData = new Image(this->width, this->height, 0, 0);
    for (int i = 0; i < this->width * this->height; i++) {
        int x = i % this->width;
        int y = i / this->width;
        originalData->setPixel(x, y, …
Run Code Online (Sandbox Code Playgroud)

c++ ocr scaling image-comparison bilinear-interpolation

5
推荐指数
0
解决办法
1119
查看次数

python:如何检查具有不同像素化的两个图像的相似性

我正在运行python代码来检查Quora和Twitter用户个人资料照片的相似性,但是当图像相同时我没有得到正面的结果。

这是用于比较两个图像的代码:

path_photo_quora= "/home/yousuf/Desktop/quora_photo.jpg"
path_photo_twitter="/home/yousuf/Desktop/twitter_photo.jpeg"
if open(path_photo_quora,"rb").read() == open(path_photo_twitter,"rb").read():
     print('photos profile are identical')
Run Code Online (Sandbox Code Playgroud)

尽管图像相同,但控制台未打印“照片配置文件相同”,我该怎么办?

python image-comparison image-processing user-profile image-scaling

5
推荐指数
2
解决办法
4823
查看次数

找出两个图像之间的差异但不是*像素到像素

我希望有人能够帮助我.

我有一对黑白图像是由扫描文本和大型扫描仪产生的(结果文件高达500M).扫描的文本几乎相同,我需要检查是否有任何实质性差异.

显然我不能逐个像素地进行比较,因为扫描到bmp的相同图像每次扫描时会给我一个稍微不同的结果.

有没有人知道我可以购买或下载的任何库 - 开源或纪念 - 并围绕它构建.NET应用程序.

预先感谢您的帮助.海伦.

image-comparison image-processing image-recognition

4
推荐指数
1
解决办法
1075
查看次数

比较url中的图像与python中文件系统中的图像

有没有一种快速简便的方法来进行这种比较?

我发现很少有来自stackoverflow的图像比较问题,但没有一个真正证明了这个问题的答案.

我的文件系统中有图像文件,还有一个从URL中获取图像的脚本.我想检查url中的图像是否与磁盘上的图像相同.通常我会将磁盘和url中的图像加载到PIL对象并使用我发现的以下函数:

def equal(im1, im2):
    return ImageChops.difference(im1, im2).getbbox() is None
Run Code Online (Sandbox Code Playgroud)

但是,如果使用PIL将图像保存到磁盘,即使将质量设置为100,它也会被压缩,但这不起作用im1.save(outfile,quality=100).

我的代码目前正在关注:http: //pastebin.com/295kDMsp 但图像总是最终重新保存.

python diff image-comparison image-processing python-imaging-library

4
推荐指数
1
解决办法
5467
查看次数

使用Python检测照片中的特定水印(无SciPy)

我有大量的图像(数十万),对于每一个,我需要说明它的右上角是否有水印.水印总是相同的并且处于相同的位置.它采用带有符号和一些文本的功能区的形式.我正在寻找简单快速的方法来做到这一点,理想情况下,不使用SciPy(因为它在我正在使用的服务器上不可用 - 但它可以使用NumPy)

到目前为止,我已经尝试使用PIL和裁剪功能来隔离图像中应该有水印的区域,然后将直方图与RMS函数进行比较(请参阅http://snipplr.com/view/757/compare-两个pil-images-in-python /).由于两个方向都存在很多错误,因此效果不佳.

任何想法将不胜感激.谢谢

python image-comparison image-processing computer-vision python-imaging-library

4
推荐指数
1
解决办法
6685
查看次数