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 ]
[
下一页 ]