o
    'j                     @   sj   d dl Z d dlZd dlZd dlZd dlZd dlmZ dd Zdd Z	dd Z
d	d
 Zedkr3e  dS dS )    N)deepcopyc                 C   s\   t dd | D }t dd | D }t dd | D }t dd | D }||||gS )Nc                 S      g | ]}|d  qS r    .0pr   r   r/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddleocr/ppstructure/kie/tools/trans_funsd_label.py
<listcomp>       z&trans_poly_to_bbox.<locals>.<listcomp>c                 S   r   r   r   r   r   r   r	   r
      r   c                 S   r      r   r   r   r   r	   r
      r   c                 S   r   r   r   r   r   r   r	   r
      r   )npminmax)Zpolyx1x2y1y2r   r   r	   trans_poly_to_bbox   s
   r   c                 C   sd   t dd | D }t dd | D }tdd | D }tdd | D }||g||g||g||ggS )Nc                 S   r   r   r   r   Zbboxr   r   r	   r
       r   z"get_outer_poly.<locals>.<listcomp>c                 S   r   r   r   r   r   r   r	   r
   !   r   c                 S   r   )   r   r   r   r   r	   r
   "   r   c                 S   r   )   r   r   r   r   r	   r
   #   r   )r   r   )Z	bbox_listr   r   r   r   r   r   r	   get_outer_poly   s
   r   c                 C   s  t | }t |}dd |D }dd |D }t }|D ]}g }tt j||d d}t|}|d }t }	d}
|D ]}|d d u rIq@|d	 }t|dkrTq@d
}|d d g}|d d g}|t|k r|| d d d ||d
  d d krtd|d dkr|	d||d t
||d |
d |d |	vrg |	|d < |	|d  	|
 |
d
7 }
|| d g}|| d g}n|	|| d  |	|| d  |d
7 }|t|k sjtd|d dkr|	d||d t
||d |
d |d |	vrg |	|d < |	|d  	|
 |
d
7 }
q@t|dd d}tt|d
 D ]X}t|ddD ]N}t||d
  d d d
 || d d d
  dk r||d
  d d d || d d d k rt|| }t||d
  ||< t|||d
 < q4 q,t|D ]B\}}g }|d D ].}|d |	vs|d
 |	vrq|	|d  D ]}|	|d
  D ]
}|	||g qqqt||| d< q|||< W d    n	1 sw   Y  q|S )Nc                 S      g | ]}| d dqS ).png replace)r   Zimgr   r   r	   r
   +       z$load_funsd_label.<locals>.<listcomp>c                 S   r   ).jsonr   r   )r   annor   r   r	   r
   ,   r   r    rformr   textwordsr   box
   r   r    labellinking)Ztranscriptionr)   pointsr*   idr,   c                 S   s    | d d d | d d d fS )Nr+   r   r   r   )r"   r   r   r	   <lambda>b   s     z"load_funsd_label.<locals>.<lambda>)keyr+      )oslistdirdictopenpathjoinjsonloadlenappendr   sortedrangeabsr   	enumerate)Z	image_dirZanno_dirZimgsZannosfn_info_mapZanno_fnresZfininfosZold_id2new_id_mapZglobal_new_idinfor%   Zword_idxZcurr_bboxesZ
curr_textsijtmpidxr"   Z	new_linkslinksrcdstr   r   r	   load_funsd_label'   s   



6.
JrJ   c            	   	   C   s   d} d}d}t | |}t|d!}|D ]}||d d tj|| dd d	  qW d    n1 s4w   Y  d
}d}d}t ||}t|d!}|D ]}||d d tj|| dd d	  qLW d    n1 smw   Y  td d S )Nz%train_data/FUNSD/testing_data/images/z*train_data/FUNSD/testing_data/annotations/ztrain_data/FUNSD/test.jsonwr   	F)ensure_ascii
z&train_data/FUNSD/training_data/images/z+train_data/FUNSD/training_data/annotations/ztrain_data/FUNSD/train.jsonz
====ok====)rJ   r4   writer7   dumpsprint)	Ztest_image_dirZtest_anno_dirZtest_output_dirr?   ZfoutfnZtrain_image_dirZtrain_anno_dirZtrain_output_dirr   r   r	   main~   s8   

rS   __main__)r7   r1   sysZcv2numpyr   copyr   r   r   rJ   rS   __name__r   r   r   r	   <module>   s   W
