0

これを行う方法の実例が必要です。湖の形状を示すbmpファイルがあります。bmpのサイズは長方形の領域であり、既知です。この写真を撮って、湖の大きさを見積もる必要があります。これまでのところ、各ピクセルの巨大なマトリックスを生成し、それが湖にあるかどうかを教えてくれるスクリプトがありますが、これはモンテカルロではありません! 私はランダムな点を生成し、それらを何らかの形で比較する必要があります.これは私が立ち往生している場所です. ここで比較する方法がわかりません。形状や線の方程式がありません。正確なポイント情報しかありません。湖にあるかどうかのどちらかです。だから私はすでに正確な面積を持っていると思いますが、ランダムポイントをこれと比較する方法を見つける必要があります.

function Yes = Point_In_Lake(x,y,image_pixel)

[pHeight,pWidth]=size(image_pixel);
    %pHeight = Height in pixel
    %pWidth = Width in pixel

width = 1000; %width is the actual width of the lake
height = 500; %height is the actual height of the lake

%converting x_value to pixel_value in image_pixel
point_x_pixel = x*pWidth/width;  
xl = floor(point_x_pixel)+1;
xu = min(ceil(point_x_pixel)+1,pWidth);

%converting y_value to pixel_value in image_pixel
point_y_pixel = y*pHeight/height;
yl = floor(point_y_pixel)+1;
yu = min(ceil(point_y_pixel)+1,pHeight);

%Finally, perform the check whether the point is in the lake 
if (image_pixel(yl,xl)~=0)&&(image_pixel(yl,xu)~=0)&&(image_pixel(yu,xl)~=0)&&(image_pixel(yu,xu)~=0)
    Yes=0;
else
    Yes=1;
end
4

1 に答える 1