当前位置: 首页 > 科技观察

Python读取图片的6种方法

时间:2023-03-21 02:04:32 科技观察

Python处理图片,第一步就是读取图片,这里为大家介绍6种读取图片的方法,将读取的图片替换成numpy.ndarray()格式。首先,你需要准备一张照片。如果你有女朋友,你可以用你女朋友的。如果你不会,那就学Python找人吧!1.OpenCV读取图片OpenCV读取图片,直接numpy.ndarray格式,不需要转换importcv2img_cv=cv2.imread(dirpath)#readdataprint("img_cv:",img_cv.shape)img_cv:(1856,2736,3)print("img_cv:",type(img_cv))img_cv:#查看读取到的数据img_cvarray([[[0,3,0],[11,20,17],...,[5,23,16]],[[0,2,0],...,[5,23,16]]]2.PIL读取图片PIL读取的图片不是直接在numpy中.ndarray格式,需要从PILimportImageimportnumpyasnpimg_PIL=Image.open(dirpath)#Readdataprint("img_PIL:",img_PIL)img_PIL:print("img_PIL:",img_PIL)img_PIL:print("img_PIL:",type(img_PIL))img_PIL:#将图片转换成np.ndarray格式img_PIL=np.array(img_PIL)print("img_PIL:",img_PIL.shape)img_PIL:(1856,2736,3)print("img_PIL:",type(img_PIL))img_PIL:#Useimg_to_array()inkerasimg_keras=img_to_array(img_keras)print("img_keras:",img_keras.shape)img_keras:(1856,2736,3)print("img_keras:",类型(img_keras))img_keras:#可以使用np.array()转换mg_keras=np.array(img_keras)四、skimage读取图片scikit-image是基于scipy的一个图像处理包,它处理图像作为numpy数组,读取的数据恰好是numpy.ndarray格式。importskimage.ioasioimg_io=io.imread(dirpath)#读取数据print("img_io:",img_io.shape)img_io:(1856,2736,3)print("img_io:",type(img_io))img_io:7.显示读取的图片同样,可以使用matplotlib包打印读取的照片。打印上面案例中读取的照片,只需要往上加下面两行代码。plt.imshow(img_plt,cmap=plt.cm.binary)plt.show()图片有三个通道,打印其中一个通道plt.imshow(img_plt[:,:,1],cmap=plt.cm.binary)plt.show()当然我们可以随便构造一个数组,可以显示出来digit=[[135,26,33,12],[14,27,43,190],[120,124,134,205]]plt.imshow(digit,cmap=plt.cm.binary)plt.show()