请高手做答,考验能力的问题

erace992001 2003-10-09 03:09:33
如何对两个图片进行相似性或者一致性进行比较
...全文
49 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
hatedeadlock 2003-10-19
  • 打赏
  • 举报
回复
帮帮忙 解决
在一个立体空间(球体)中如何判断 一点 在球体内还是在球体外
能不能 写出现成的算法??
CloneCenter 2003-10-18
  • 打赏
  • 举报
回复
这个东西很复杂啊。不会啊
vavyboyleon 2003-10-18
  • 打赏
  • 举报
回复
记得以前看过一个这方面的东西,好像是将这两张图片有同样的方法割成若干个方块
对每个图块中的表示色彩的量,如:亮度,色度等进行数学统计,然后对两张图的所有图块进行比较,并且设立一个相似性的阈值比如75%,当相同的超过这个阈值时,就说这两个图形是一致的,这个方法是可以递归的,通过控制递归的级数可以控制精度
大概就是这样,具体我记不太清了,还望众高手指教
hatedeadlock 2003-10-18
  • 打赏
  • 举报
回复
在一个立体空间(球体)中如何判断 一点 在球体内还是在球体外
能不能 写出现成的算法??
diazo 2003-10-18
  • 打赏
  • 举报
回复
基于每像素的比较显然不是什么好办法,如果是位图应该先读取其原始位图描述数据,然后基于数据的比较应该更好一点,这方面有没有好的算法可以再研究。
erace992001 2003-10-14
  • 打赏
  • 举报
回复
大家再帮忙
hatedeadlock 2003-10-12
  • 打赏
  • 举报
回复
我觉得应该有现成的算法可以调用
ahjoe 2003-10-12
  • 打赏
  • 举报
回复
相似性,难得很啊,你得研究若干年吧。
直接做像素比较没多大意义的,要是图像平移了一个像素,你对像素比较有什么用呢
要是图像处理过,亮度或色度改变了,你又如何比较呢
liufuyahong 2003-10-12
  • 打赏
  • 举报
回复
Up
hatedeadlock 2003-10-12
  • 打赏
  • 举报
回复
哈哈 想似性比较有意思
hatedeadlock 2003-10-12
  • 打赏
  • 举报
回复
好象OPENGL有类似这样的算法!具体我也不是很清楚
很土 2003-10-11
  • 打赏
  • 举报
回复
图片的相似性判断是非常难的, 如图片经旋转一定角度后再判断相似也不是很容易.

图片相似性比较不能简单地用点来比较, 应该把颜色值, 宽和高转换成三维极坐标(L, a, b),
L 是到极点O 的距离, a 是相对 A 方向的角度, b 是相对 B 方向的角度, 这样比较相似性会相对简单一点, 但算法还是很难给出来.
gallipot 2003-10-11
  • 打赏
  • 举报
回复
相似性的比较可以直接看有关模式识别的书籍,会有一般的常用算法
crossbow 2003-10-09
  • 打赏
  • 举报
回复
呵呵,只有先模糊,再比较,类似Photoshop,比较可惜。具体算法参见FastLib
hatedeadlock 2003-10-09
  • 打赏
  • 举报
回复
1:使用多线程
2:判断引擎是你自己写的嘛

比较就是这么比较的了
erace992001 2003-10-09
  • 打赏
  • 举报
回复
这样做比较一个图形要多少分钟,做过吗?
640 * 480 的图片需要2分钟吧
而且也没法进行相似性比较啊
hatedeadlock 2003-10-09
  • 打赏
  • 举报
回复
type
pRGBArray = ^TRGBArray;
TRGBArray = Array[0..MaxPixelCount-1]Of TRGBTriple;

procedure trid;
var
Orig,Dest:pRgBArray;
begin
for i:=0 to OrigImage.Picture.BitMap.Height-1 do
begin
Orig:=Origimage.picture.bitmap.Scanline[i];
dest:=Destimage.picture.bitmap.scanline[i];
if j:=0 to origimage.picture.bitmap.width-1 do
begin
if Orig[j].rgbtRed=Dest[j].rgbtRed then
...
if Orig[j].rgbtgreen=Dest[j].rgbtgreen then
...
if Orig[j].rgbtblue=Dest[j].rgbtblue then
...

end;
end;
end;
erace992001 2003-10-09
  • 打赏
  • 举报
回复
如果谁做过指纹机软件的人可以说一下你的的验证方法啊!

指纹机软件是怎么比较指纹的呢?
erace992001 2003-10-09
  • 打赏
  • 举报
回复
对于图片的一致的比较可能有很多的笨方法,比如逐个象素点值的比较,至于图片进行位移,那就认为图片不一致,但难点就是相似比较可能比较困难哦
crossbow 2003-10-09
  • 打赏
  • 举报
回复
建议先扫描整幅图片生成一个图片描述文件Mask文件,再比较之。

如果相差不远,再把两幅图片缩放成相同的大小,再逐个点进行比较。用汇编速度可能快些,建议把图片分块多线程扫描。
加载更多回复(11)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧