How to read images into a script without using using imageio or scikit image?
Question:
I am trying to read a png
image in python. The imread
function in scipy
is being deprecated and they recommend using imageio
library.
However, I am would rather restrict my usage of external libraries to scipy
, numpy
and matplotlib
libraries. Thus, using imageio
or scikit image
is not a good option for me.
Are there any methods in python or scipy
, numpy
or matplotlib
to read images, which are not being deprecated?
Answers:
With matplotlib you can use (as shown in the matplotlib documentation)
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img=mpimg.imread('image_name.png')
And plot the image if you want
imgplot = plt.imshow(img)
If you just want to read an image in Python using the specified
libraries only, I will go with matplotlib
In matplotlib :
import matplotlib.image
read_img = matplotlib.image.imread('your_image.png')
For the better answer, you can use these lines of code.
Here is the example maybe help you :
import cv2
image = cv2.imread('/home/pictures/1.jpg')
plt.imshow(image)
plt.show()
In imread()
you can pass the directory .so you can also use str()
and +
to combine dynamic directories and fixed directory like this:
path = '/home/pictures/'
for i in range(2) :
image = cv2.imread(str(path)+'1.jpg')
plt.imshow(image)
plt.show()
Both are the same.
You can also use Pillow like this:
from PIL import Image
image = Image.open("image_path.jpg")
image.show()
import matplotlib.pyplot as plt
image = plt.imread('images/my_image4.jpg')
plt.imshow(image)
Using ‘matplotlib.pyplot.imread’ is recommended by warning messages in jupyter.
From documentation:
Matplotlib can only read PNGs natively. Further image formats are supported via the optional dependency on Pillow.
So in case of PNG
we may use plt.imread()
. In other cases it’s probably better to use Pillow
directly.
you can try to use cv2 like this
import cv2
image= cv2.imread('image page')
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
I read all answers but I think one of the best method is using openCV library.
import cv2
img = cv2.imread('your_image.png',0)
and for displaying the image, use the following code :
from matplotlib import pyplot as plt
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()
Easy way
from IPython.display import Image
Image(filename ="Covid.jpg" size )
I am trying to read a png
image in python. The imread
function in scipy
is being deprecated and they recommend using imageio
library.
However, I am would rather restrict my usage of external libraries to scipy
, numpy
and matplotlib
libraries. Thus, using imageio
or scikit image
is not a good option for me.
Are there any methods in python or scipy
, numpy
or matplotlib
to read images, which are not being deprecated?
With matplotlib you can use (as shown in the matplotlib documentation)
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img=mpimg.imread('image_name.png')
And plot the image if you want
imgplot = plt.imshow(img)
If you just want to read an image in Python using the specified
libraries only, I will go withmatplotlib
In matplotlib :
import matplotlib.image
read_img = matplotlib.image.imread('your_image.png')
For the better answer, you can use these lines of code.
Here is the example maybe help you :
import cv2
image = cv2.imread('/home/pictures/1.jpg')
plt.imshow(image)
plt.show()
In imread()
you can pass the directory .so you can also use str()
and +
to combine dynamic directories and fixed directory like this:
path = '/home/pictures/'
for i in range(2) :
image = cv2.imread(str(path)+'1.jpg')
plt.imshow(image)
plt.show()
Both are the same.
You can also use Pillow like this:
from PIL import Image
image = Image.open("image_path.jpg")
image.show()
import matplotlib.pyplot as plt
image = plt.imread('images/my_image4.jpg')
plt.imshow(image)
Using ‘matplotlib.pyplot.imread’ is recommended by warning messages in jupyter.
From documentation:
Matplotlib can only read PNGs natively. Further image formats are supported via the optional dependency on Pillow.
So in case of PNG
we may use plt.imread()
. In other cases it’s probably better to use Pillow
directly.
you can try to use cv2 like this
import cv2
image= cv2.imread('image page')
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
I read all answers but I think one of the best method is using openCV library.
import cv2
img = cv2.imread('your_image.png',0)
and for displaying the image, use the following code :
from matplotlib import pyplot as plt
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()
Easy way
from IPython.display import Image
Image(filename ="Covid.jpg" size )