MCPcopy Create free account
hub / github.com/Topdu/OpenOCR / resize_norm_img

Method resize_norm_img

tools/data/ratio_dataset_test.py:192–229  ·  view source on GitHub ↗
(self, data, gen_ratio, padding=True)

Source from the content-addressed store, hash-verified

190 return imgori
191
192 def resize_norm_img(self, data, gen_ratio, padding=True):
193 img = data['image']
194 h = img.shape[0]
195 w = img.shape[1]
196
197 imgW, imgH = self.base_shape[gen_ratio - 1] if gen_ratio <= 4 else [
198 self.base_h * gen_ratio, self.base_h
199 ]
200 use_ratio = imgW // imgH
201 if use_ratio >= (w // h) + 2:
202 self.error += 1
203 return None
204 if not padding:
205 resized_image = cv2.resize(img, (imgW, imgH),
206 interpolation=cv2.INTER_LINEAR)
207 resized_w = imgW
208 else:
209 ratio = w / float(h)
210 if math.ceil(imgH * ratio) > imgW:
211 resized_w = imgW
212 else:
213 resized_w = int(
214 math.ceil(imgH * ratio * (random.random() + 0.5)))
215 resized_w = min(imgW, resized_w)
216
217 resized_image = cv2.resize(img, (resized_w, imgH))
218 resized_image = resized_image.astype('float32')
219 resized_image = resized_image.transpose((2, 0, 1)) / 255
220 resized_image -= 0.5
221 resized_image /= 0.5
222 padding_im = np.zeros((3, imgH, imgW), dtype=np.float32)
223 padding_im[:, :, :resized_w] = resized_image
224 valid_ratio = min(1.0, float(resized_w / imgW))
225 data['image'] = padding_im
226 data['valid_ratio'] = valid_ratio
227 data['gen_ratio'] = imgW // imgH
228 data['real_ratio'] = max(1, round(w / h))
229 return data
230
231 def get_lmdb_sample_info(self, txn, index):
232 label_key = 'label-%09d'.encode() % index

Callers 1

__getitem__Method · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected