一个关于图像查找的问题,高手请进(200分)

  • 主题发起人 主题发起人 long034
  • 开始时间 开始时间
L

long034

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现在一幅图像中查找判断是否包含另一副图像?比如,在A图像是是否包含B图像的内容。
 
完全匹配?模糊匹配?有没有旋转问题?等等。。。
说清楚了,别人要出招。
 
完成匹配和模糊匹配都行,没有旋转
 
如果完全匹配的话,可以从
src dst
function samepic(src: TImage; i, j: Integer; dst: TImage): Boolean;
var
k,m: Integer;
begin
for k := i to i+dst.width do
for m := j to j + dst.Height do
begin
if src.Canvas.Pixels[k,m] <> dst.Canvas.Pixels[k-i,m-j] then
begin
Result := False;
Exit;
end;
end;
Result ;= True;
end;

function HasPic(src, dst: TImage)Boolean;
var
I, J:Integer;
begin

for I := 0 to src.width - dst.width do
for J := 0 to dst.height - dst.height do
begin
if src.Canvas.Pixels[i,j] <> dst.Canvas.Pixels[0,0] then
begin
if samepic(src, i, j, dst) then
begin
Result := True;
Exit;
end;
end;
end;
 
理论是看着可以,但在测试时总找不到,或许应该考虑容差的范围,完成精确的每一个象素都匹配估计很难。
 
识别技术。高
 
后退
顶部