mirror of
				https://github.com/qurator-spk/eynollah.git
				synced 2025-10-31 17:54:12 +01:00 
			
		
		
		
	re-enable changes from c606391c31
				
					
				
			This commit is contained in:
		
							parent
							
								
									22fed4fc22
								
							
						
					
					
						commit
						6020554555
					
				
					 1 changed files with 93 additions and 93 deletions
				
			
		|  | @ -154,95 +154,95 @@ def return_contours_of_interested_region(region_pre_p, pixel, min_area=0.0002): | |||
|     return contours_imgs | ||||
| 
 | ||||
| 
 | ||||
| # def do_work_of_contours_in_image(queue_of_all_params, contours_per_process, indexes_r_con_per_pro, img, slope_first): | ||||
| #     cnts_org_per_each_subprocess = [] | ||||
| #     index_by_text_region_contours = [] | ||||
| #     for mv in range(len(contours_per_process)): | ||||
| #         index_by_text_region_contours.append(indexes_r_con_per_pro[mv]) | ||||
| def do_work_of_contours_in_image(queue_of_all_params, contours_per_process, indexes_r_con_per_pro, img, slope_first): | ||||
|     cnts_org_per_each_subprocess = [] | ||||
|     index_by_text_region_contours = [] | ||||
|     for mv in range(len(contours_per_process)): | ||||
|         index_by_text_region_contours.append(indexes_r_con_per_pro[mv]) | ||||
|          | ||||
| #         img_copy = np.zeros(img.shape) | ||||
| #         img_copy = cv2.fillPoly(img_copy, pts=[contours_per_process[mv]], color=(1, 1, 1)) | ||||
|         img_copy = np.zeros(img.shape) | ||||
|         img_copy = cv2.fillPoly(img_copy, pts=[contours_per_process[mv]], color=(1, 1, 1)) | ||||
| 
 | ||||
| #         img_copy = rotation_image_new(img_copy, -slope_first) | ||||
|         img_copy = rotation_image_new(img_copy, -slope_first) | ||||
| 
 | ||||
| #         img_copy = img_copy.astype(np.uint8) | ||||
| #         imgray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY) | ||||
| #         ret, thresh = cv2.threshold(imgray, 0, 255, 0) | ||||
|         img_copy = img_copy.astype(np.uint8) | ||||
|         imgray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY) | ||||
|         ret, thresh = cv2.threshold(imgray, 0, 255, 0) | ||||
| 
 | ||||
| #         cont_int, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | ||||
|         cont_int, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | ||||
| 
 | ||||
| #         cont_int[0][:, 0, 0] = cont_int[0][:, 0, 0] + np.abs(img_copy.shape[1] - img.shape[1]) | ||||
| #         cont_int[0][:, 0, 1] = cont_int[0][:, 0, 1] + np.abs(img_copy.shape[0] - img.shape[0]) | ||||
|         cont_int[0][:, 0, 0] = cont_int[0][:, 0, 0] + np.abs(img_copy.shape[1] - img.shape[1]) | ||||
|         cont_int[0][:, 0, 1] = cont_int[0][:, 0, 1] + np.abs(img_copy.shape[0] - img.shape[0]) | ||||
| 
 | ||||
| #         cnts_org_per_each_subprocess.append(cont_int[0]) | ||||
|         cnts_org_per_each_subprocess.append(cont_int[0]) | ||||
| 
 | ||||
| #     queue_of_all_params.put([cnts_org_per_each_subprocess, index_by_text_region_contours]) | ||||
|     queue_of_all_params.put([cnts_org_per_each_subprocess, index_by_text_region_contours]) | ||||
| 
 | ||||
| 
 | ||||
| # def get_textregion_contours_in_org_image_multi(cnts, img, slope_first): | ||||
| def get_textregion_contours_in_org_image_multi(cnts, img, slope_first): | ||||
|      | ||||
| #     num_cores = cpu_count() | ||||
| #     queue_of_all_params = Queue() | ||||
|     num_cores = cpu_count() | ||||
|     queue_of_all_params = Queue() | ||||
| 
 | ||||
| #     processes = [] | ||||
| #     nh = np.linspace(0, len(cnts), num_cores + 1) | ||||
| #     indexes_by_text_con = np.array(range(len(cnts))) | ||||
| #     for i in range(num_cores): | ||||
| #         contours_per_process = cnts[int(nh[i]): int(nh[i + 1])] | ||||
| #         indexes_text_con_per_process = indexes_by_text_con[int(nh[i]): int(nh[i + 1])] | ||||
|     processes = [] | ||||
|     nh = np.linspace(0, len(cnts), num_cores + 1) | ||||
|     indexes_by_text_con = np.array(range(len(cnts))) | ||||
|     for i in range(num_cores): | ||||
|         contours_per_process = cnts[int(nh[i]): int(nh[i + 1])] | ||||
|         indexes_text_con_per_process = indexes_by_text_con[int(nh[i]): int(nh[i + 1])] | ||||
| 
 | ||||
| #         processes.append(Process(target=do_work_of_contours_in_image, args=(queue_of_all_params, contours_per_process, indexes_text_con_per_process, img, slope_first))) | ||||
| #     for i in range(num_cores): | ||||
| #         processes[i].start() | ||||
| #     cnts_org = [] | ||||
| #     all_index_text_con = [] | ||||
| #     for i in range(num_cores): | ||||
| #         list_all_par = queue_of_all_params.get(True) | ||||
| #         contours_for_sub_process = list_all_par[0] | ||||
| #         indexes_for_sub_process = list_all_par[1] | ||||
| #         for j in range(len(contours_for_sub_process)): | ||||
| #             cnts_org.append(contours_for_sub_process[j]) | ||||
| #             all_index_text_con.append(indexes_for_sub_process[j]) | ||||
| #     for i in range(num_cores): | ||||
| #         processes[i].join() | ||||
|         processes.append(Process(target=do_work_of_contours_in_image, args=(queue_of_all_params, contours_per_process, indexes_text_con_per_process, img, slope_first))) | ||||
|     for i in range(num_cores): | ||||
|         processes[i].start() | ||||
|     cnts_org = [] | ||||
|     all_index_text_con = [] | ||||
|     for i in range(num_cores): | ||||
|         list_all_par = queue_of_all_params.get(True) | ||||
|         contours_for_sub_process = list_all_par[0] | ||||
|         indexes_for_sub_process = list_all_par[1] | ||||
|         for j in range(len(contours_for_sub_process)): | ||||
|             cnts_org.append(contours_for_sub_process[j]) | ||||
|             all_index_text_con.append(indexes_for_sub_process[j]) | ||||
|     for i in range(num_cores): | ||||
|         processes[i].join() | ||||
| 
 | ||||
| #     print(all_index_text_con) | ||||
| #     return cnts_org | ||||
|     print(all_index_text_con) | ||||
|     return cnts_org | ||||
| 
 | ||||
| 
 | ||||
| # def loop_contour_image(index_l, cnts, img, slope_first): | ||||
| #     img_copy = np.zeros(img.shape) | ||||
| #     img_copy = cv2.fillPoly(img_copy, pts=[cnts[index_l]], color=(1, 1, 1)) | ||||
| def loop_contour_image(index_l, cnts, img, slope_first): | ||||
|     img_copy = np.zeros(img.shape) | ||||
|     img_copy = cv2.fillPoly(img_copy, pts=[cnts[index_l]], color=(1, 1, 1)) | ||||
| 
 | ||||
| #     # plt.imshow(img_copy) | ||||
| #     # plt.show() | ||||
|     # plt.imshow(img_copy) | ||||
|     # plt.show() | ||||
| 
 | ||||
| #     # print(img.shape,'img') | ||||
| #     img_copy = rotation_image_new(img_copy, -slope_first) | ||||
| #     # print(img_copy.shape,'img_copy') | ||||
| #     # plt.imshow(img_copy) | ||||
| #     # plt.show() | ||||
|     # print(img.shape,'img') | ||||
|     img_copy = rotation_image_new(img_copy, -slope_first) | ||||
|     # print(img_copy.shape,'img_copy') | ||||
|     # plt.imshow(img_copy) | ||||
|     # plt.show() | ||||
| 
 | ||||
| #     img_copy = img_copy.astype(np.uint8) | ||||
| #     imgray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY) | ||||
| #     ret, thresh = cv2.threshold(imgray, 0, 255, 0) | ||||
|     img_copy = img_copy.astype(np.uint8) | ||||
|     imgray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY) | ||||
|     ret, thresh = cv2.threshold(imgray, 0, 255, 0) | ||||
| 
 | ||||
| #     cont_int, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | ||||
|     cont_int, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | ||||
| 
 | ||||
| #     cont_int[0][:, 0, 0] = cont_int[0][:, 0, 0] + np.abs(img_copy.shape[1] - img.shape[1]) | ||||
| #     cont_int[0][:, 0, 1] = cont_int[0][:, 0, 1] + np.abs(img_copy.shape[0] - img.shape[0]) | ||||
| #     # print(np.shape(cont_int[0])) | ||||
| #     return cont_int[0] | ||||
|     cont_int[0][:, 0, 0] = cont_int[0][:, 0, 0] + np.abs(img_copy.shape[1] - img.shape[1]) | ||||
|     cont_int[0][:, 0, 1] = cont_int[0][:, 0, 1] + np.abs(img_copy.shape[0] - img.shape[0]) | ||||
|     # print(np.shape(cont_int[0])) | ||||
|     return cont_int[0] | ||||
| 
 | ||||
| 
 | ||||
| # def get_textregion_contours_in_org_image_multi2(cnts, img, slope_first): | ||||
| def get_textregion_contours_in_org_image_multi2(cnts, img, slope_first): | ||||
| 
 | ||||
| #     cnts_org = [] | ||||
| #     # print(cnts,'cnts') | ||||
| #     with Pool(cpu_count()) as p: | ||||
| #         cnts_org = p.starmap(loop_contour_image, [(index_l, cnts, img, slope_first) for index_l in range(len(cnts))]) | ||||
|     cnts_org = [] | ||||
|     # print(cnts,'cnts') | ||||
|     with Pool(cpu_count()) as p: | ||||
|         cnts_org = p.starmap(loop_contour_image, [(index_l, cnts, img, slope_first) for index_l in range(len(cnts))]) | ||||
|          | ||||
| #     return cnts_org | ||||
|     return cnts_org | ||||
| 
 | ||||
| 
 | ||||
| def get_textregion_contours_in_org_image(cnts, img, slope_first): | ||||
|  | @ -276,42 +276,42 @@ def get_textregion_contours_in_org_image(cnts, img, slope_first): | |||
|     return cnts_org | ||||
| 
 | ||||
| 
 | ||||
| # def get_textregion_contours_in_org_image_light(cnts, img, slope_first): | ||||
| def get_textregion_contours_in_org_image_light(cnts, img, slope_first): | ||||
|      | ||||
| #     h_o = img.shape[0] | ||||
| #     w_o = img.shape[1] | ||||
|     h_o = img.shape[0] | ||||
|     w_o = img.shape[1] | ||||
|      | ||||
| #     img = cv2.resize(img, (int(img.shape[1]/3.), int(img.shape[0]/3.)), interpolation=cv2.INTER_NEAREST) | ||||
| #     # cnts = list( (np.array(cnts)/2).astype(np.int16) ) | ||||
| #     # cnts = cnts/2 | ||||
| #     cnts = [(i / 3).astype(np.int32) for i in cnts] | ||||
| #     cnts_org = [] | ||||
| #     # print(cnts,'cnts') | ||||
| #     for i in range(len(cnts)): | ||||
| #         img_copy = np.zeros(img.shape) | ||||
| #         img_copy = cv2.fillPoly(img_copy, pts=[cnts[i]], color=(1, 1, 1)) | ||||
|     img = cv2.resize(img, (int(img.shape[1]/3.), int(img.shape[0]/3.)), interpolation=cv2.INTER_NEAREST) | ||||
|     # cnts = list( (np.array(cnts)/2).astype(np.int16) ) | ||||
|     # cnts = cnts/2 | ||||
|     cnts = [(i / 3).astype(np.int32) for i in cnts] | ||||
|     cnts_org = [] | ||||
|     # print(cnts,'cnts') | ||||
|     for i in range(len(cnts)): | ||||
|         img_copy = np.zeros(img.shape) | ||||
|         img_copy = cv2.fillPoly(img_copy, pts=[cnts[i]], color=(1, 1, 1)) | ||||
| 
 | ||||
| #         # plt.imshow(img_copy) | ||||
| #         # plt.show() | ||||
|         # plt.imshow(img_copy) | ||||
|         # plt.show() | ||||
| 
 | ||||
| #         # print(img.shape,'img') | ||||
| #         img_copy = rotation_image_new(img_copy, -slope_first) | ||||
| #         # print(img_copy.shape,'img_copy') | ||||
| #         # plt.imshow(img_copy) | ||||
| #         # plt.show() | ||||
|         # print(img.shape,'img') | ||||
|         img_copy = rotation_image_new(img_copy, -slope_first) | ||||
|         # print(img_copy.shape,'img_copy') | ||||
|         # plt.imshow(img_copy) | ||||
|         # plt.show() | ||||
| 
 | ||||
| #         img_copy = img_copy.astype(np.uint8) | ||||
| #         imgray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY) | ||||
| #         ret, thresh = cv2.threshold(imgray, 0, 255, 0) | ||||
|         img_copy = img_copy.astype(np.uint8) | ||||
|         imgray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY) | ||||
|         ret, thresh = cv2.threshold(imgray, 0, 255, 0) | ||||
| 
 | ||||
| #         cont_int, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | ||||
|         cont_int, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | ||||
| 
 | ||||
| #         cont_int[0][:, 0, 0] = cont_int[0][:, 0, 0] + np.abs(img_copy.shape[1] - img.shape[1]) | ||||
| #         cont_int[0][:, 0, 1] = cont_int[0][:, 0, 1] + np.abs(img_copy.shape[0] - img.shape[0]) | ||||
| #         # print(np.shape(cont_int[0])) | ||||
| #         cnts_org.append(cont_int[0]*3) | ||||
|         cont_int[0][:, 0, 0] = cont_int[0][:, 0, 0] + np.abs(img_copy.shape[1] - img.shape[1]) | ||||
|         cont_int[0][:, 0, 1] = cont_int[0][:, 0, 1] + np.abs(img_copy.shape[0] - img.shape[0]) | ||||
|         # print(np.shape(cont_int[0])) | ||||
|         cnts_org.append(cont_int[0]*3) | ||||
| 
 | ||||
| #     return cnts_org | ||||
|     return cnts_org | ||||
| 
 | ||||
| 
 | ||||
| def return_contours_of_interested_textline(region_pre_p, pixel): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue