我正在尝试为一些行为心理学研究提出一个评分系统。
我要求人们在绘图板上画一个字母,然后在它上面描摹。我想评估此跟踪的准确性。所以,你画任何一个字母('a'),然后你再画一次,然后我根据它与你第一次画它的相似程度来给它打分。绘图存储为像素位置。
准确性被评估为与原始字母的接近程度。该方法不需要允许缩放、旋转或位置改变。从概念上讲,它就像两条线之间的区域,只有两条线是高度不规则的,所以积分(据我所知)不起作用。
我正在用 MATLAB 写作,但我们将不胜感激任何概念上的帮助。我尝试将绘制的所有像素之间的最小距离相加,但这会为放置良好的单点提供良好的(低)分数。
这一定是以前做过的,但我的搜索没有任何运气。
--- 使用下面@Bill 建议的方法的部分解决方案。不起作用,因为 bwdist 梯度太陡了。而不是比尔展示的漂亮的第二张图片,它看起来更像原版。
%% Letter to image
im = zeros(1080,1920,3); % The screen (possible pixel locations)
% A small square a bit like the letter 'a', a couple of pixels wide.
pixthick = 5;
im(450:450+pixthick,[900:1100],:) = 1;
im(550:550+pixthick,[900:1100],:) = 1;
im([450:550],900:900+pixthick,:) = 1;
im([450:570],1100:1100+pixthick,:) = 1;
subplot(2,1,1); imagesc(im); %% atransbw = bwdist(im(:,:,1)<0.5); subplot(2,1,2);
imagesc(atransbw);