anber_jia 发表于 2007-4-5 16:56

求助:关于图像识别(识别小十字,读出其坐标)有了新想法

我要做的是把小十字从那幅狗狗的图里找出来,并读出坐标。。
前提是知道小十字,小十字是10*10的bmp格式的,狗狗图是500*500bmp格式的,而且小十字在狗狗的图里,小十字大小全不变。
我想到的方法是进行图像扫描,先读入小十字,再读入狗狗图
作一个循环,进行像素的相减,如果得0的话就是小十字。。。
这个问题类似于卷积的问题:
把小十字作为模板10*10的。
之后在狗狗图上取10*10的模板,从一排一列做循环
for i=1:500
   for j=1:500
       E=..........(这块要取一个10*10的模板,可否用nlfilter这个函数呢?)
   for n=1:10
          for m=1:10
             d=模板-E;
if d=0;输出坐标

以上是我写的一个大概,不知道看的人明白不明白我的意思。。不知道我这样想可行不可行呢,小妮子我没用matlab做过什么,这次算是真正的学习吧。谢谢达人给些提示!

anber_jia 发表于 2007-4-5 16:59

狗狗图248k的传不上来

anber_jia 发表于 2007-4-14 00:27

用不用给图像矩阵数据最上最下最左最右填上两行数据0呢?
我把我最近学习的一块卷积运算的小程序给大家一起学习吧

% --- 模板卷积运算 ---
for i=2:257
    for j=2:257
      image33=% 从图像e中取出3×3的矩阵
               e(i,j-1) e(i,j) e(i,j+1);
               e(i+1,j-1) e(i+1,j) e(i+1,j+1)];
      temp=0;               % 模板初始值为0
      for m=1:3               % 图象的9个像素分别与模板的9个元素相乘,累加其结果。
            for n=1:3   
                temp = image33(m,n) * panel(m,n) + temp;
            end
      end
      panelimage(i,j)=temp/9; % 为控制亮度,将累加值取平均
    end
end
这个取得是一个3*3的模板
我要取一个10*10的模板

happy 发表于 2007-4-14 21:17

理论上是可行的,不过估计计算量会很大

另外你的循环不对,应该是491*491次
页: [1]
查看完整版本: 求助:关于图像识别(识别小十字,读出其坐标)有了新想法