- //posを計算\r
- for(int i=0;i<label_count;i++){\r
- final RleLabelFragmentInfoStack.RleLabelFragmentInfo tmp=f_array[i];\r
- tmp.pos_x/=tmp.area;\r
- tmp.pos_y/=tmp.area;\r
+ RleLabelFragmentInfoStack.RleLabelFragmentInfo[] o_dest_array=o_stack.getArray();\r
+ final int max=this._max_area;\r
+ final int min=this._min_area;\r
+ int active_labels=0;\r
+ for(int i=id_max-1;i>=0;i--){\r
+ final int area=f_array[i].area;\r
+ if(area<min || area>max){//対象外のエリア0のもminではじく\r
+ continue;\r
+ }\r
+ //\r
+ final RleInfoStack.RleInfo src_info=f_array[i];\r
+ final RleLabelFragmentInfoStack.RleLabelFragmentInfo dest_info=o_dest_array[active_labels];\r
+ dest_info.area=area;\r
+ dest_info.clip_b=src_info.clip_b;\r
+ dest_info.clip_r=src_info.clip_r;\r
+ dest_info.clip_t=src_info.clip_t;\r
+ dest_info.clip_l=src_info.clip_l;\r
+ dest_info.entry_x=src_info.entry_x;\r
+ dest_info.pos_x=src_info.pos_x/src_info.area;\r
+ dest_info.pos_y=src_info.pos_y/src_info.area;\r
+ active_labels++;\r