0
私はスクリプトを書きましたが、スクリプトは動作しません。私はどのバグがあるのか分かりません。 screenCapture関数をテストしました。できます。私のコードはピクセルごとに比較し、この時点では赤色のみを比較しています。 normxcorr2ドキュメントの例でMATLABを使用して大きな画像内の小さな画像の位置を見つける方法は?
function [X,Y] = findImageXY(ImageName)
X = 0;
Y = 0;
%Load the small image
SmallImage = imread(ImageName);
%Screen Capture the right screen
ScreenImage1=ScreenCapture([1600,1,1600,900],'ScreenImage.bmp');
ScreenImage = imread('ScreenImage.bmp');
for ii = 1:size(ScreenImage,1) - size(SmallImage,1) - 1
for jj = 1:size(ScreenImage,2) - size(SmallImage,2) - 1
X = 0;
for i = 1:size(SmallImage,1)
for j = 1:size(SmallImage,2)
if ScreenImage(ii+i,jj+j,1)~= SmallImage(i,j,1)
X = inf;
Y = inf;
break
end
end
if isinf(X) == 1
break
end
end
if X == 0
X = jj + ceil(size(SmallImage,2)/2);
Y = ii + ceil(size(SmallImage,1)/2);
break
end
end
if X~=0 && isinf(X)~=1
break
end
end
こんにちは、関数normmcorr2を使用して、小さなイメージがインデックスオフセットの大きなものと最も類似しているインデックスを取得できます。私は、2つの画像の値が同一ではない可能性があると考えています。正確な比較はできませんが、その差異があるはずです。しかし、私は 'normxcorr2'を使うのが最善だと思います。 – dafnahaktana
また、画面キャプチャ画像の場合は、画面上に何がスムーズな領域があるかによって異なります。例えば、画面がstackoverflowサイトにページを表示していて、あなたは同じ分野が多くあり、正しいマッチを見つけることが難しいです。 – dafnahaktana
過労の種類ですが、一般的な画像登録方法を使用することができます。あなたの問題に合ったものがここにあります。 https://www.mathworks.com/help/images/ref/imregister.html – Durkee