Enlarge image enhance without losing quality - python

I have an image that I need to enlarge and enhance its quality for better reading
I tried the following using Pillow to resize the image but I still can't read it well
from PIL import Image
img = Image.open('Sample.jpg')
resized_img = img.resize((2450, 3283))
resized_img.save('Output.png')
Here's a sample of the image

Related

PySimpleGUI: How to get size of an image

I have an image viewer that shows the selected image. However I have different sizes of images and I would like to access the selected image size in order to have a fixed GUI. Otherwise GUI resizes and images are not showing properly. Is there any way to see the size of an image? After I get the image size I am thinking of subsampling according to its size. Thanks.
from PIL import Image
with Image.open('test.png') as im:
size = im.size
print(size)
Here is a way using PIL Image package.

How to compress an image using PIL

I would like to compress and image using PIL, but when I execute it the image is still the same size. How do I solve it?
What I tried so far?
img.save('Compressed_image.tiff', dpi=[300,300], quality=35)
I tried to change the quality but the file size is always the same.
define the new width and height of the image
then use the following to downscale, before saving
img = img.resize( (width, height), Image.LANCZOS)
also, since TIFF is a lossless format, reducing the quality parameter would not have any effect on the saved filesize.

Enlarge picture using Pillow package keep ratio

I am trying to use python pillow package to enlarge picture and here is my try
from PIL import Image
image = Image.open('Sample.jpg')
new_image = image.resize((1080, 1080))
new_image.save('Output.jpg')
The code is working but the output image loses completely the ratio. How can I enlarge the image without losing the quality?
What you're talking about is image upscaling, which is a more complex problem just than enlarging the image. I recommend looking into image upscaling packages. A lot of them use CNNs for this.

Resample the Image Pixels in Python

I have an image of 300*300 pixels size and want to convert it into 1500*1500 pixels size using python. I need this because i have to georeferenced this image with 1500*1500 pixel raster image. Any python library function or basic fundamental how to do this are welcome.
You should try using Pillow (fork of PIL = Python Image Library)
Simple like this:
from PIL import Image
img = Image.open("my_image.png")
img.resize((1500, 1500, ))
img.save("new_image.png")

Python OpenCv, only read part of image

I have thousands of large .png images (screenshots). I'm using opencv to do image recognition on a small portion of each image. I'm currently doing:
image = cv2.imread(path)
x,y,w,h = bounds
image = image[y:y + h, x:x + w]
The profiler tells me cv2.imread is a bottleneck. I'm wondering if I can make the script faster by only reading the part of each image I'm interested in rather than loading the entire image and then cropping to the bounds. I can't find an OpenCV flag for that though. Am I missing one?
AFAICT, there's no way to do this with OpenCV. But I did find a solution here: Load just part of an image in python
Simply using PIL to save the cropped region of interest when generating the screenshots works.

Categories

Resources