发布时间:2025-12-11 02:40:05 浏览次数:1
#-*-coding:UTF-8-*-importcv2"""cv2模块--图片的读入和显示"""image_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg"img=cv2.imread(image_path)#np.ndarrayBGRuint8cv2.imshow("test_imread",img)#转为RGB显示cv2.waitKey()#-*-coding:UTF-8-*-fromPILimportImageimportnumpyasnpimportmatplotlib.pyplotaspltimage_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg"#PIL#相关:scipy.misc.imread,scipy.ndimage.imread#misc.imread提供可选参数mode,但本质上是调用PIL,具体的模式可以去看srccode或者document#https://github.com/scipy/scipy/blob/v0.17.1/scipy/misc/pilutil.pyimg=Image.open(image_path)img=np.array(img)#获得numpy对象,np.ndarray,RGB#统一使用plt进行显示,不管是plt还是cv2.imshow,在python中只认numpy.array,但是由于cv2.imread的图片是BGR,cv2.imshow时相应的换通道显示plt.imshow(img)plt.show()
#-*-coding:UTF-8-*-fromPILimportImageimportnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.imageasmpimgimage_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg"img=mpimg.imread(image_path)#统一使用plt进行显示,不管是plt还是cv2.imshow,在python中只认numpy.array,但是由于cv2.imread的图片是BGR,cv2.imshow时相应的换通道显示plt.imshow(img)plt.show()
#-*-coding:UTF-8-*-fromPILimportImageimportnumpyasnpimportmatplotlib.pyplotaspltfromskimageimportioimage_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg"#4skimge#caffe.io.load_iamge()也是调用的skimage实现的,返回的是0-1float型数据img=io.imread(image_path)#统一使用plt进行显示,不管是plt还是cv2.imshow,在python中只认numpy.array,但是由于cv2.imread的图片是BGR,cv2.imshow时相应的换通道显示plt.imshow(img)plt.show()
#-*-coding:UTF-8-*-fromscipy.miscimportimread,imshow,imsaveimportmatplotlib.pyplotaspltimage_path="D:/PycharmProjects/imageCut/cutted_images/0.jpg"img=imread(image_path)#imshow(img)needtosettheSCIPY_PIL_IMAGE_VIEWERenvironmentvariabletopointtotheprogram/executablethatcanbeusedtoviewimagesonyoursystemplt.imshow(img)plt.show()imsave("D:/PycharmProjects/imageCut/cutted_images/1.jpg",img)补充:cv2.imread()和matplotlib.image.imread()读取图片的一些区别,python,中文路径
除了读取出来的rgb的顺序不一样,对于读取图片的类型要求也不一样,
将.jpg改为.png,后者读取就有问题,而前者就顺利的读取出来了
而且cv2.imread()不能有中文路径,否则读取不出来,一般opencv库都不允许中文路径
但是可以这样修改,就可以得到可以识别中文路径的读取:
#cv2识别中文路径defcv2_imread(img_path):cv_img=cv2.imdecode(np.fromfile(img_path,dtype=np.uint8),-1)returncv_imgimg_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读取的图像的形式是数组,不同的读取函数,读取到的图像的形式是不一样的,所以可以多次进行不同的读取方式,来进行不同的操作
读出来的为rgb,而且可以使用中文路径(cv2.imread()读出来的图片是BGR)
scipy.misc.imsave(),直接进行保存就可以。但是有一点要注意,它只能保存uint8类型的数据,所以有时候就需要对他的类型进行声明。还有一些别的函数,有时候也会这样的。uint8的取值范围是0-255,所以注意越界问题。