diff --git a/calculate_overlap.m b/calculate_overlap.m new file mode 100644 index 0000000000000000000000000000000000000000..4beda379b0554368b07556cf3b78c881cb0c88ef --- /dev/null +++ b/calculate_overlap.m @@ -0,0 +1,30 @@ +function[T_overlap, T_annot, T_algo, Distance] = calculate_overlap(annot_box, algo_box) + +annot_xbr=str2double(annot_box.Attributes(4).Value); +annot_xtl=str2double(annot_box.Attributes(5).Value); +annot_ybr=str2double(annot_box.Attributes(6).Value); +annot_ytl=str2double(annot_box.Attributes(7).Value); +algo_xbr=str2double(algo_box.Attributes(4).Value); +algo_xtl=str2double(algo_box.Attributes(5).Value); +algo_ybr=str2double(algo_box.Attributes(6).Value); +algo_ytl=str2double(algo_box.Attributes(7).Value); + +T_annot=(annot_xbr-annot_xtl)*(annot_ybr-annot_ytl); +T_algo=(algo_xbr-algo_xtl)*(algo_ybr-algo_ytl); +annot_center_x=(annot_xbr-annot_xtl)/2; +annot_center_y=(annot_ybr-annot_ytl)/2; +algo_center_x=(algo_xbr-algo_xtl)/2; +algo_center_y=(algo_ybr-algo_ytl)/2; +Distance=sqrt((annot_center_x-algo_center_x)*(annot_center_x-algo_center_x)+(annot_center_y-algo_center_y)*(annot_center_y-algo_center_y));%pitagorasz +if (algo_xtl>annot_xbr) || (annot_xtl>algo_xbr) %ha nem találkoznak a téglalapok + T_overlap=0; +elseif (algo_ytl>annot_ybr) || (annot_ytl>algo_ybr) + T_overlap=0; +else %van átfedés + xbr=min([annot_xbr, algo_xbr]); + ybr=min([annot_ybr, algo_ybr]); + xtl=max([annot_xtl, algo_xtl]); + ytl=max([annot_ytl algo_ytl]); + T_overlap=(xbr-xtl)*(ybr-ytl); +end +end \ No newline at end of file