图片相似度算法
① 图像视频相似度算法
前段时间公司项目用到了语音识别,图像识别,视频识别等,其实不能说是识别,应该说是相似度对比吧,毕竟相似度对比还上升不了到识别哈,等以后有了更深的理解再来讨论修改下!这次就当做一个总结吧!
其实它的原理就是一个把需要的特征总结在一个指纹码里面,进行降维成指纹码,假如个指纹码一模一样,那两张图片就想似了.下面有写怎么编译成唯一标识,再用汉明距离计算两个指纹码的相似度.
图片是采用phash算法,一共分为四步吧.
1.将图片缩放到16*16大小,这是我们选择的合适的大小,假如宽高不一样,直接将其压到16*16,去掉细节,只保留宏观;
2.图片一共是16*16的,共256个像素,我们将图片进行灰度化,灰度化就是只有黑白灰三种,从白到黑,一共分了255层;
3.灰度化之后将图片进行DCT转换(离散余弦变化),因为为了识别有的图片旋转,这个DCT转换是将图片进行了一种压缩算法;
4.我们对这个算法进行了优化,因为之前是计算像素的均值,我们为了更准确,我们取RGB,rgb一共分为255个像素,我们将255个像素分为16段,如果像素大于0-16记为0,17到32记为1,直到255,这样就得到255位的二进制,这就是这张图片的指纹码.
得到唯一标识的指纹码之后怎么去计算像素度呢?
通过汉明距离比较两个二进制距离,如果距离小于<10的话,我们就判定两张图片相似.如果两个指纹码(二进制)一模一样,我们就判定两个是一张图片,或者类似;
视频的话我们是通过ffmpeg(ff am pig),它是一个专门处理视频的框架,可以从视频中按针提取图片.然后就按照图片的相似度取对比了...
② 图片相似度检索
介个课题应该是比较有难度挑战的。毕竟人工智能的水平没有这么发达。
现在的搜索引擎上面,“图片搜索”实际上是“图片解说文字搜索”,离真正的图像相似检索,还差得远呢。
你的这一串数字应该是两个图像的不同特征数字吧,比如颜色,轮廓,名称等等,你滴数字长度很长,复杂的算法也不现实。
可以分段求相关系数,具体可以参考概率统计里边相关系数的概念,下面是matlab指令的corrcoef的效果
A =
1 2 3 4 5 6 7 8 9 10
>> B
B =
1.0000 2.0000 2.9000 4.0000 5.0000 6.2000 7.0000 8.0000 9.0000 10.0000
>> C=corrcoef(A,B)
C =
1.0000 0.9997
0.9997 1.0000
求相关系数,具体实现的时候可以有简化或快速算法,这都可以仔细斟酌的。
③ 利用matlab,想计算两张图片的相似度,要用到什么函数或者算法例如求特征值用eigs,希望能告诉操作步骤
用欧氏距离可以表征相似度。两个图相减再求平方和就可以。求和用sum()
④ C#怎么来判断2张图片相似度
很麻烦,而且计算量很大,这个属于人工智能的范畴。
如果这“两张相似图片”可以规定很多前提,比如相同分辨率,黑白,简单几何图形。。。那么可以用基本的算法去算一下“相似度”, 也就是楼上说的,读取两张照片的像素点,然后遍历去对比灰度差值。这些有很多现成的算法,也有很多网站提供这方面的计算(直接调用API即可),但是只能得出数字化的“相似度”。
如果你要的就是两张图片像素点之间的差异,那么就去找算法即可实现。
看一参考这个网站:www.aforgenet.com 这个是国外比较知名的图像处理的网站。
但是,两张图片如果尺寸不一呢? 如果比例不一样呢? 如果有留白呢?彩色的呢?
所以目前最成熟的编程算法也就是识别一下字母和数字(比如谷歌可以识别照片上的门牌号和街道号),人脸识别也只是拿几个标本部位来大致判断相似度(眼睛的大小,鼻梁的高度,脸颊的宽瘦和比例), 以人眼的标准完整的去比较两张图片是否一样是很难的,目前应该还没有这方面成熟的技术。
⑤ 有什么可以对比两张图片得出相似度的软件。
呵呵,这个软件我还真有,DuplicatePhotoFinder-这个软件不旦可以找相同图片还可以找相似图片的软件哟
名字不一样,大小不一样都能找得出来。只要内容相同或相似!我经常用这个软件清理我的图片
⑥ 图像相似度计算【python】
其中,G和S为两张图片的图像颜色分布直方图,N为颜色空间样点数。这里使用分块的方法计算相似度,用以提高各部分的特征,防止图片颜色相似导致计算的相似度高。
—————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————
转自另一位大佬,忘记地址了
⑦ 计算图像相似度的算法有哪些
SIM = Structural SIMilarity(结构相似性),这是一种用来评测图像质量的一种方法。由于人类视觉很容易从图像中抽取出结构信息,因此计算两幅图像结构信息的相似性就可以用来作为一种检测图像质量的好坏.
首先结构信息不应该受到照明的影响,因此在计算结构信息时需要去掉亮度信息,即需要减掉图像的均值;其次结构信息不应该受到图像对比度的影响,因此计算结构信息时需要归一化图像的方差;最后我们就可以对图像求取结构信息了,通常我们可以简单地计算一下这两幅处理后的图像的相关系数.
然而图像质量的好坏也受到亮度信息和对比度信息的制约,因此在计算图像质量好坏时,在考虑结构信息的同时也需要考虑这两者的影响.通常使用的计算方法如下,其中C1,C2,C3用来增加计算结果的稳定性:
2u(x)u(y) + C1
L(X,Y) = ------------------------ ,u(x), u(y)为图像的均值
u(x)^2 + u(y)^2 + C1
2d(x)d(y) + C2
C(X,Y) = ------------------------,d(x),d(y)为图像的方差
d(x)^2 + d(y)^2 + C2
d(x,y) + C3
S(X,Y) = ----------------------,d(x,y)为图像x,y的协方差
d(x)d(y) + C3
而图像质量Q = [L(X,Y)^a] x [C(X,Y)^b] x [S(X,Y)^c],其中a,b,c分别用来控制三个要素的重要性,为了计算方便可以均选择为1,C1,C2,C3为比较小的数值,通常C1=(K1 x L)^2, C2=(K2 xL)^2, C3 = C2/2, K1 << 1, K2 << 1, L为像素的最大值(通常为255).
希望对你能有所帮助。
⑧ 相片相似度在线测试,两段语音相似度对比,什么算法识别率高
提起相片相似度在线测试,大家都知道,有人问两段相似度对比,什么算法识别率高?另外,还有人想问在网上怎样才找到跟自己相似度很高的照片,你知道这是怎么回事?其实有没有什么软件可以对两张照片对比相似度的,下面就一起来看看两段相似度对比,什么算法识别率高?希望能够帮助到大家!
相片相似度在线测试
1、相片相似度在线测试:两段相似度对比,什么算法识别率高?
可以用两个软件测试测试,说出同样的一段话就好了,就知道哪个识别率好了,就像录音转文字助手就可以把转换成文字。
点开里边的录音识别功能,说出你要测试的,就可以把转成文字了,你可以去跟其他的比较一下。
2、相片相似度在线测试:在网上怎样才找到跟自己相似度很高的照片
可以用识图来检索相似度高的图片,而且成功率很高。照片相似度对比在线测试软件。
识图是图片搜索近期推出的一项新功能。常规的图片搜索,是通过输入关键词的形式搜索到互联网上相关的图片,而识图则能实现用户通过上传图片或输入图片的url地址,从而搜索到互联网上与这张图片相似的其他图片,同时也能找到这张图片相关的信息。
看到说可以用PS对比照片相似度,想知道怎么做?我的是PS7.0的唔。。是比对人脸的相似度之类的。。听人说是PS可以,自己不知道怎么用。
看到说可以用PS对比照片相似度,想知道怎么做?我的是PS7.0的
有没有什么软件可以对两张照片对比相似度的
照片的相似度?
这个问题太笼统了.夫妻相测试免费。
如果是想看看两个一样的照片有没有什么不同处的话,在PS里把一个直接拖到另一个里面,然后在图层里把上面的图层透明度调小点,你会看到两个照片的,没重叠在一起的就是不同处,
如果你想看两个照片的风格,或相机和相机参数,用PS没相机自带软件好.
3、相片相似度在线测试:有没有什么软件可以对两张照片对比相似度的
1、Mix滤镜。
IX滤镜免费提供将近款默认滤镜,包括景深滤镜,散景滤镜,经典纹理,漏光滤镜,更多自定义编辑工具和完善的自定义编辑参数。MIX滤镜是一款自定义手动编辑应用,在创造的过程中,能满足对照片的想象。两张照片 在脸比对。
2、光影术手。
光影术手为一款针对图像画质进行改善提升及效果处理的软件;简单、易用,不需要任何专业的图像技术,就可以制作出专业胶片摄影的色彩效果,其具有许多独特之处,如反转片效果、黑白效果、数码补光、冲版排版等,且其批量处理功能非常强大,是摄影作品后期处理、图片快速美容、数码照片冲印整理时必备的图像处理软件,能够满足绝大部分人照片后期处理的需要。
3、美图秀秀。
美图秀秀的图片、美容、拼图、场景、边框、饰品等功能,可以1分钟做出影楼级照片,还能一键分享到新浪微博、人人网、QQ空间等。
年4月推出美图社交圈,鼓励年轻人秀真我,让社交更好看,美图秀秀也从影像工具升级为社区。
4、图。
图(原图精灵)是BeijingBaiNetcomScience&TechnologyCo.,Ltd的一款掌上美图工具,致力于提供手机上图片拍摄、美化、分享和云端相册的一站式图片服务。
调节亮度、对比度、裁剪、旋转翻转图片等等,对图片基本的色彩校正和技术处理。采用曲线调节技术,用户拖动滑杆即可达到。支持iOS及Android系统,已成为时下的图片美化工具。
5、可牛影像。人脸相似度在线测试软件。
可牛影像为一款强大的免费照片处理管理软件。可牛影像内嵌上千张日历、宝宝照、大头贴、婚纱照、非主流场景,无须任何PS技巧识即可制作支持多图场景,一张日历、婚纱、宝宝照中可内嵌多张照片,制作效果很酷。软件集成了超强人像美容及影楼智能人像柔焦美容,1秒钟呈现朦胧艺术感觉,像冷蓝、冷绿、暖黄、复古影楼,冷艳、唯美、风情。人脸相似度对比在线测试。
以上就是与两段相似度对比,什么算法识别率高?相关内容,是关于两段相似度对比,什么算法识别率高?的分享。看完相片相似度在线测试后,希望这对大家有所帮助!
⑨ C#灰度图像通过相似度算法找出相似度最高的图片
这种以图搜图可以用感知哈希算法,
第一步 缩小图片尺寸
将图片缩小到8x8的尺寸, 总共64个像素. 这一步的作用是去除各种图片尺寸和图片比例的差异, 只保留结构、明暗等基本信息.
第二步 转为灰度图片
将缩小后的图片, 转为64级灰度图片.
第三步 计算灰度平均值
计算图片中所有像素的灰度平均值
第四步 比较像素的灰度
将每个像素的灰度与平均值进行比较, 如果大于或等于平均值记为1, 小于平均值记为0.
第五步 计算哈希值
将上一步的比较结果, 组合在一起, 就构成了一个64位的二进制整数, 这就是这张图片的指纹.
第六步 对比图片指纹
得到图片的指纹后, 就可以对比不同的图片的指纹, 计算出64位中有多少位是不一样的. 如果不相同的数据位数不超过5, 就说明两张图片很相似, 如果大于10, 说明它们是两张不同的图片.
具体的c#代码可以看
usingSystem;
usingSystem.IO;
usingSystem.Drawing;
namespaceSimilarPhoto
{
classSimilarPhoto
{
ImageSourceImg;
publicSimilarPhoto(stringfilePath)
{
SourceImg=Image.FromFile(filePath);
}
publicSimilarPhoto(Streamstream)
{
SourceImg=Image.FromStream(stream);
}
publicStringGetHash()
{
Imageimage=ReceSize();
Byte[]grayValues=ReceColor(image);
Byteaverage=CalcAverage(grayValues);
Stringreslut=ComputeBits(grayValues,average);
returnreslut;
}
//Step1:Recesizeto8*8
privateImageReceSize(intwidth=8,intheight=8)
{
Imageimage=SourceImg.GetThumbnailImage(width,height,()=>{returnfalse;},IntPtr.Zero);
returnimage;
}
//Step2:ReceColor
privateByte[]ReceColor(Imageimage)
{
BitmapbitMap=newBitmap(image);
Byte[]grayValues=newByte[image.Width*image.Height];
for(intx=0;x<image.Width;x++)
for(inty=0;y<image.Height;y++)
{
Colorcolor=bitMap.GetPixel(x,y);
bytegrayValue=(byte)((color.R*30+color.G*59+color.B*11)/100);
grayValues[x*image.Width+y]=grayValue;
}
returngrayValues;
}
//Step3:Averagethecolors
privateByteCalcAverage(byte[]values)
{
intsum=0;
for(inti=0;i<values.Length;i++)
sum+=(int)values[i];
returnConvert.ToByte(sum/values.Length);
}
//Step4:Computethebits
privateStringComputeBits(byte[]values,byteaverageValue)
{
char[]result=newchar[values.Length];
for(inti=0;i<values.Length;i++)
{
if(values[i]<averageValue)
result[i]='0';
else
result[i]='1';
}
returnnewString(result);
}
//Comparehash
(stringa,stringb)
{
if(a.Length!=b.Length)
thrownewArgumentException();
intcount=0;
for(inti=0;i<a.Length;i++)
{
if(a[i]!=b[i])
count++;
}
returncount;
}
}
}
⑩ 急急急!求matlab图像求二值图像相似度,在线等!
图像1和2为RGB图,放在m文件夹下;直接输入二值的话就不用im2bw了,pio是相似比
I1=imread('1.jpg');
I2=imread('2.jpg');
I1_bw=im2bw(I1);%%二值化
I2_bw=im2bw(I2);
[h,w]=size(I1_bw);%%获取图的宽高h/w
sum=0;
for i=1:h
for j=1:w
if I1_bw(i,j)==I2_bw(i,j)%%逐点比较相似
sum=sum+1;
end
end
end
pio=double(sum)/h/w;