ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

用CV2把png图片改成jpg

2022-01-29 15:32:42  阅读:171  来源: 互联网

标签:img cv2 CV2 jpg filename print path png


path = "D:/Research/Python/Machine_Learning/practice_4_jpg"
print(path)

for filename in os.listdir(path): #文件夹里不止一张图片,所以要用for循环遍历所有的图片
    if os.path.splitext(filename)[1] == '.png': #把path这个路径下所有的文件都读一遍,如果后缀名是png,进行下一步,即imread的读取
        img_path = path + '/' + filename 
        img = cv2.imread(img_path)
        #print(img)
        #print(img_path)
        #print(filename.replace(".png", ".jpg"))
        newfilename = filename.replace(".png", ".jpg") #用replace函数把.png换成.jpg
        new_path = path + '/' + newfilename 
        print(new_path)
        cv2.imwrite(new_path,img)

最开始报错是

cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-q3d_8t8e\opencv\modules\imgproc\src\color.cpp:182:

查到说因为路径有中文,但是我的路径完全没有中文,所以不是这个问题,但是既然到了im.write这里报错,就去看看imwrite这函数有没有用对

imwrite用法:

cv2.imwrite(filename, img)

文件名,img(图片本身)

我打印以后发现,img这个参数现实的是none,就说明一开始python就没有读到img的数据,再往前看,img = cv2.imread(img_path),问题一定处在img_path身上,我打印img_path以后发现,在path和filename之间少了一个‘/’符号,这等于把文件的路径完全变了,所以python根本没有读到数据。

imread用法:只需要在函数里放入图片的路径

img = cv2.imread(image_path)

不光要看报错的内容,也要看出问题的那一行,每一个部分有没有问题

标签:img,cv2,CV2,jpg,filename,print,path,png
来源: https://blog.csdn.net/anelance/article/details/122743861

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有