您好,登錄后才能下訂單哦!
小編給大家分享一下Python中imread()函數(shù)怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
# -*- coding: UTF-8 -*- import cv2 """ cv2模塊--圖片的讀入和顯示 """ image_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg" img=cv2.imread(image_path)# np.ndarray BGR uint8 cv2.imshow("test_imread",img)# 轉為RGB顯示 cv2.waitKey()
# -*-coding: UTF-8 -*- from PIL import Image import numpy as np import matplotlib.pyplot as plt image_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg" #PIL #相關:scipy.misc.imread, scipy.ndimage.imread #misc.imread 提供可選參數(shù)mode,但本質上是調用PIL,具體的模式可以去看srccode或者document #https://github.com/scipy/scipy/blob/v0.17.1/scipy/misc/pilutil.py img=Image.open(image_path) img=np.array(img)# 獲得numpy對象, np.ndarray, RGB #統(tǒng)一使用plt進行顯示,不管是plt還是cv2.imshow,在python中只認numpy.array,但是由于cv2.imread 的圖片是BGR,cv2.imshow 時相應的換通道顯示 plt.imshow(img) plt.show()
# -*-coding: UTF-8 -*- from PIL import Image import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimg image_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg" img=mpimg.imread(image_path) #統(tǒng)一使用plt進行顯示,不管是plt還是cv2.imshow,在python中只認numpy.array,但是由于cv2.imread 的圖片是BGR,cv2.imshow 時相應的換通道顯示 plt.imshow(img) plt.show()
# -*-coding: UTF-8 -*- from PIL import Image import numpy as np import matplotlib.pyplot as plt from skimage import io image_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg" #4 skimge #caffe.io.load_iamge()也是調用的skimage實現(xiàn)的,返回的是0-1 float型數(shù)據(jù) img = io.imread(image_path) #統(tǒng)一使用plt進行顯示,不管是plt還是cv2.imshow,在python中只認numpy.array,但是由于cv2.imread 的圖片是BGR,cv2.imshow 時相應的換通道顯示 plt.imshow(img) plt.show()
# -*-coding: UTF-8 -*- from scipy.misc import imread, imshow, imsave import matplotlib.pyplot as plt image_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg" img = imread(image_path) # imshow(img) need to set the SCIPY_PIL_IMAGE_VIEWER environment variable to point to the program/executable that can be used to view images on your system plt.imshow(img) plt.show() imsave("D:/PycharmProjects/imageCut/cutted_images/1.jpg",img)
補充:cv2.imread()和matplotlib.image.imread()讀取圖片的一些區(qū)別,python,中文路徑
除了讀取出來的rgb的順序不一樣,對于讀取圖片的類型要求也不一樣,
將.jpg改為.png,后者讀取就有問題,而前者就順利的讀取出來了
而且cv2.imread()不能有中文路徑,否則讀取不出來,一般opencv庫都不允許中文路徑
但是可以這樣修改,就可以得到可以識別中文路徑的讀?。?/p>
#cv2識別中文路徑 def cv2_imread(img_path): cv_img=cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1) return cv_img img_y = cv2_imread('E:/哈哈/' + str(number) + '.jpg') #這個是存儲到帶有中文路徑的文件里面,其中有圖像質量的模糊度 cv2.imencode('.jpg', img,[int(cv2.IMWRITE_JPEG_QUALITY), random.uniform(30, 50)])[1].tofile("E:/哈哈/" + str(xuhao) + ".jpg")
對于cv2讀取的圖像的形式是數(shù)組,不同的讀取函數(shù),讀取到的圖像的形式是不一樣的,所以可以多次進行不同的讀取方式,來進行不同的操作
讀出來的為rgb,而且可以使用中文路徑(cv2.imread()讀出來的圖片是BGR)
scipy.misc.imsave(),直接進行保存就可以。但是有一點要注意,它只能保存uint8類型的數(shù)據(jù),所以有時候就需要對他的類型進行聲明。還有一些別的函數(shù),有時候也會這樣的。uint8的取值范圍是0-255,所以注意越界問題。
以上是“Python中imread()函數(shù)怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。