标签: image-processing

UIImage:调整大小,然后裁剪

我一直在this this for for for for for for and and and while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while

我认为,在我的设计的概念阶段提前,从iPhone的相机或库中获取图像,将其缩小到指定高度,使用与Aspect Fill选项相当的功能将是一件小事. UIImageView(完全在代码中),然后裁掉任何不适合传递给CGRect的东西.

从相机或图书馆获取原始图像非常简单.我很惊讶其他两个步骤的难度.

附图显示了我想要实现的目标.有人请你好好握住我的手吗?到目前为止我发现的每个代码示例似乎都会破坏图像,颠倒过来,看起来像废话,画出界限,或者其他方法都不能正常工作.

iphone core-graphics image-processing ios

187
推荐指数
6
解决办法
12万
查看次数

简单快速的方法来比较图像的相似性

我需要一种简单快速的方法来比较两个图像的相似性.即如果它们包含完全相同的东西但是可能有一些稍微不同的背景并且可能被移动/调整大小几个像素,我想获得高值.

(更具体的是,如果重要的话:一张图片是一个图标,另一张图片是截图的子区域,我想知道该子区域是否恰好是图标.)

我手边有OpenCV,但我仍然不习惯它.

到目前为止我想到的一种可能性:将两张图片分成10x10个单元格,对于这100个单元格中的每一个,比较颜色直方图.然后我可以设置一些补偿阈值,如果我得到的值高于该阈值,我认为它们是相似的.

我还没有尝试过它的效果如何,但我想它会足够好.图像已经非常相似(在我的用例中),所以我可以使用相当高的阈值.

我想有很多其他可能的解决方案可以或多或少地工作(因为任务本身非常简单,因为我只想检测相似性,如果它们非常相似).你会建议什么?


关于从图像中获取签名/指纹/哈希,有一些非常相关/类似的问题:

另外,我偶然发现了这些具有获取指纹功能的实现:

关于感知图像哈希的一些讨论:这里


有点offtopic:有很多方法来创建音频指纹.MusicBrainz是一种为歌曲提供基于指纹的查找的网络服务,在他们的维基中很好的概述.他们现在正在使用AcoustID.这是为了找到精确(或大部分精确)的匹配.要查找类似的匹配(或者如果您只有一些片段或高噪音),请查看Echoprint.一个相关的SO问题在这里.所以这似乎解决了音频问题.所有这些解决方案都非常有效.

对一般的模糊搜索一个稍微更通用的问题是在这里.例如,存在局部敏感的散列最近邻搜索.

opencv image-processing computer-vision

186
推荐指数
5
解决办法
12万
查看次数

适用于Android SDK的快速位图模糊

目前在我正在开发的Android应用程序中,我正在循环遍历图像的像素以使其模糊.这在640x480图像上大约需要30秒.

在Android Market中浏览应用程序时,我遇到了一个包含模糊功能的应用程序,并且它们的模糊非常快(例如5秒),因此它们必须使用不同的模糊方法.

除了循环像素之外,任何人都知道更快的方法吗?

java android image-processing renderscript

182
推荐指数
9
解决办法
13万
查看次数

OpenCV C++/Obj-C:检测一张纸/方形检测

我在我的测试应用程序中成功实现了OpenCV平方检测示例,但现在需要过滤输出,因为它非常混乱 - 或者我的代码是错误的?

我对本文的四个角点感兴趣,以减少偏斜(如此)和进一步处理......

输入输出: 输入输出

原始图片:

点击

码:

double angle( cv::Point pt1, cv::Point pt2, cv::Point pt0 ) {
    double dx1 = pt1.x - pt0.x;
    double dy1 = pt1.y - pt0.y;
    double dx2 = pt2.x - pt0.x;
    double dy2 = pt2.y - pt0.y;
    return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);
}

- (std::vector<std::vector<cv::Point> >)findSquaresInImage:(cv::Mat)_image
{
    std::vector<std::vector<cv::Point> > squares;
    cv::Mat pyr, timg, gray0(_image.size(), CV_8U), gray;
    int thresh = 50, N = 11;
    cv::pyrDown(_image, pyr, cv::Size(_image.cols/2, _image.rows/2));
    cv::pyrUp(pyr, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing objective-c computer-vision

171
推荐指数
3
解决办法
11万
查看次数

如何量化两幅图像之间的差异?

这就是我想做的事情:

我定期用网络摄像头拍照.有点像时间流逝的事情.但是,如果没有真正改变,也就是说,图片几乎看起来一样,我不想存储最新的快照.

我想有一些量化差异的方法,我必须凭经验确定一个阈值.

我在寻求简洁而不是完美.我正在使用python.

python image-comparison image-processing timelapse background-subtraction

169
推荐指数
9
解决办法
16万
查看次数

人脸识别库

我正在为大学项目寻找一个免费的人脸识别库.我不是在寻找面部检测.我正在寻找实际的认可.这意味着查找包含指定面或库的图像,以计算特定面之间的距离.

我目前正在使用OpenCV来检测面部,并使用粗略的Eigenface算法进行识别.但我认为应该有一些比自编的Eigenface算法更好的性能.我不是在谈论速度和性能,我正在寻找一个比简单的Eigenface方法更好的结果库.

我看了一下Faint,但看起来这个库对我自己的应用程序来说不是很可重用.

我很高兴使用Python,Java,C++,C等类似的库.最好的办法是,如果它可以在Windows机器上运行,因为我现在依赖于一些外部的Windows专用代码.

image-processing face-recognition computer-vision

165
推荐指数
7
解决办法
11万
查看次数

使用ImageMagick"Diff"图像

如何获得两个图像之间的差异?我有原始图像.有人写过原始图像的精确副本.现在,我需要比较原始图像和书面图像,并提取图像格式的书写.

示例:我有一张房子的照片.有人拿了一份副本,在副本上写了"你好!".我想以某种方式比较两张照片,删除房子,并留下"Hello!"字样的图像.

ImageMagick有可能吗?我知道有办法获得图像之间的统计差异,但这不是我想要的.

diff image imagemagick image-processing difference

162
推荐指数
2
解决办法
7万
查看次数

比较两个图像的算法

鉴于两个不同的图像文件(我选择的任何格式),我需要编写一个程序来预测一个程序是否是另一个的非法副本.副本的作者可以执行诸如旋转,制作否定或添加琐碎细节(以及更改图像的尺寸)之类的内容.

你知道做这种工作的算法吗?

algorithm image image-processing image-recognition

157
推荐指数
6
解决办法
12万
查看次数

使用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 = ''
        res.setEncoding('binary')
        res
          .on('error', function(err) {
            callback(err)
          })
          .on('data', function(chunk) {
            body += chunk
          })
          .on('end', function() {
            // What about Windows?!
            var path = '/tmp/' + …
Run Code Online (Sandbox Code Playgroud)

image image-processing download node.js

148
推荐指数
7
解决办法
17万
查看次数

如何使用OpenCV2.0和Python2.6调整图像大小

我想使用OpenCV2.0和Python2.6来显示已调整大小的图像.我在http://opencv.willowgarage.com/documentation/python/cookbook.html上使用并采用了这个例子,但遗憾的是这段代码适用于OpenCV2.1,似乎没有在2.0上运行.这是我的代码:

import os, glob
import cv

ulpath = "exampleshq/"

for infile in glob.glob( os.path.join(ulpath, "*.jpg") ):
    im = cv.LoadImage(infile)
    thumbnail = cv.CreateMat(im.rows/10, im.cols/10, cv.CV_8UC3)
    cv.Resize(im, thumbnail)
    cv.NamedWindow(infile)
    cv.ShowImage(infile, thumbnail)
    cv.WaitKey(0)
    cv.DestroyWindow(name)
Run Code Online (Sandbox Code Playgroud)

既然我不能用

cv.LoadImageM
Run Code Online (Sandbox Code Playgroud)

我用了

cv.LoadImage
Run Code Online (Sandbox Code Playgroud)

相反,这在其他应用程序中没有问题.然而,cv.iplimage没有属性行,列或大小.任何人都可以给我一个提示,如何解决这个问题?谢谢.

python opencv resize image image-processing

147
推荐指数
5
解决办法
43万
查看次数