Untitled
unknown
plain_text
a year ago
1.8 kB
8
Indexable
#%%
#%%
import openslide
import glob
import os
import matplotlib.pyplot as plt
import numpy as np
import easyocr
#%%
imgDir = '/project/shared/kapur_rajaram_phi/Staging/From_Dinesh_20240703_part4'
svsPaths = glob.glob(os.path.join(imgDir, '*.svs'))
# Initialize EasyOCR reader for English
reader = easyocr.Reader(['en'], gpu=False)
#%%
for svsPath in svsPaths:
slide = openslide.open_slide(svsPath)
label_img = slide.associated_images.get('label')
if label_img:
# Convert the label image to a format suitable for OCR (numpy array)
label_img_np = np.array(label_img)
for angle in [0, 90, 180, 270]:
# Rotate the image by the specified angle
rotated_img = label_img.rotate(angle, expand=True)
rotated_img_np = np.array(rotated_img)
# Use EasyOCR to extract text
extracted_text = reader.readtext(rotated_img_np, detail=0) # detail=0 returns only the text
print(f"Extracted Text from {os.path.basename(svsPath)} at {angle} degrees:")
print("\n".join(extracted_text)) # Print each line of extracted text
print("-" * 50)
# Display the rotated image
plt.imshow(rotated_img_np)
plt.title(f"Label Image (Rotated {angle} degrees) from {os.path.basename(svsPath)}")
plt.show()
# Get the number of levels in the slide (resolution levels)
nLevels = slide.level_count
# Read the lowest resolution image for display
lowres_img = np.array(slide.read_region((0, 0), nLevels-1, slide.level_dimensions[nLevels-1]))[:, :, :3]
# Display the low-resolution image
plt.imshow(lowres_img)
plt.title(f"Low-Resolution Image from {os.path.basename(svsPath)}")
plt.show()Editor is loading...
Leave a Comment