打字猴:1.701008766e+09
1701008766 我和数学有约:趣味数学及算法解析 [:1701004237]
1701008767 我和数学有约:趣味数学及算法解析 7.1 QQ找茬
1701008768
1701008769 QQ找茬是时下最为热门的休闲游戏。玩法十分简单:只要把两幅图片中不相同的地方用鼠标左键单击即可。每关设有5处茬点,找出当前图片的所有茬点就能顺利进入下一张图片,直到各关所有的图片茬点都按时找到。
1701008770
1701008771 游戏规则极为普及、操作简单、考验玩家的分析力观察力、适合不同性别不同年龄段的玩家,实乃为办公室和宿舍的杀手。
1701008772
1701008773 操作方法:用鼠标左键从图片区域选择左右两幅图之间的不同之处。一般每幅图的不同之处为5处。
1701008774
1701008775 操作正确:若在图片上选择了正确的茬点的位置,则出现标志框选出该茬的位置,代表已被正确找出,同时显示当前图片还剩下多少茬。
1701008776
1701008777 操作错误:若选择了错误的茬点的位置,则进入冷却状态,时间为2秒。选择错误后,2秒内玩家无法对图片进行操作,2秒结束后一切恢复正常。
1701008778
1701008779 游戏时间:每张图片的时间为50秒,若时间耗尽则根据游戏模式结束游戏或换下一张图。
1701008780
1701008781 【问题】怎么快速进行图像对照找茬?
1701008782
1701008783 【分析】
1701008784
1701008785 针对这个问题,每一个用户各有见解,然后人的眼睛观察再仔细,都比不上计算机的进行搜索式对比,游戏设定了时间限制,因此采用人眼进行图像找茬,未免存在缺陷,以下采用计算机进行模拟。
1701008786
1701008787 如图7-1和图7-2所示,两张图像很明显,就是车站的差异,因此人眼和计算机相比,在这个图像中人眼肯定快得多,当采用MATLAB程序模拟程序如下:
1701008788
1701008789     clc,clear,close all                                 %清屏和清除变量    warning off                                         %消除警告    a1=imread(‘1.png’); a1 =imresize(a1,[512 512]);     %图像压缩尺寸到512*512    a2=imread(‘2.png’); a2 =imresize(a2,[512 512]);     %图像压缩尺寸到512*512    a3=imsubtract(a2,a1);                               %连续两帧图像做差    figure,imshow(a3);                                  %显示图像
1701008790
1701008791
1701008792
1701008793   图7-1 待测图像1     图7-2 待测图像2   运行程序输出图像如图7-3所示。
1701008794
1701008795
1701008796
1701008797
1701008798 图7-3 计算机找茬
1701008799
1701008800 采用计算机找茬,用户也能够实现找出茬点所在的位置。
1701008801
1701008802 然而对于比较小的图像,或者是特征不太明显时,计算机相对人眼表现更优,具体的图像如图7-4所示。
1701008803
1701008804
1701008805
1701008806
1701008807 图7-4 找茬图像组
1701008808
1701008809 编程MATLAB程序如下:
1701008810
1701008811     clc,clear,close all                  %清屏和清除变量    warning off                          %消除警告    a = imread(‘3.jpg’);                 %读图    figure,imshow(a)                     %显示图像    a1=a(1:300,1:floor(785/2),:);        %图像1    a2=a(1:300,floor(785/2)+2:end,:);    %图像2    a3=imsubtract(a2,a1);                %连续两帧图像做差    a4 = imsubtract(a1,a2);              %连续两帧图像做差    a5 = a3+a4;    figure,imshow(a5);
1701008812
1701008813 运行程序输出图像如图7-5所示。
1701008814
1701008815
[ 上一页 ]  [ :1.701008766e+09 ]  [ 下一页 ]