opencv: cv2.imread()读取中文路径报错的问题及使用cv2.resize

使用python中cv2读取带中文路径的图片失败,解决办法如下:

附带resize使用

Python: cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
(1) src:原图片
(2)dsize:缩放图片尺寸,如果dsize=0,默认计算方式如下dsize=Size(round(fx∗src.cols),round(fy∗src.rows))
(3)fx fy和dsize不能同时为0 fx,fy分别是在x,y轴上的缩放系数,默认取0时,fx=(double)dsize.width/src.cols ,fy=(double)dsize.height/src.cols,默认参数为0可以不写如里面
(4)interpolation :差值方式使用默认即可 默认的是INTER_LINEAR - a bilinear interpolation (used by default)现行差值
# -*- coding: utf-8 -*-
import cv2
import numpy as np
 
## 读取图像,解决imread不能读取中文路径的问题
def cv_imread(filePath):
    cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)
    ## imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化
    ##cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)
    return cv_img
if __name__=='__main__':
    path='E:/images/百合/百合1.jpg'
    img=cv_imread(path)
    cv2.namedWindow('lena',cv2.WINDOW_AUTOSIZE)
    cv2.imshow('lena',img)
    cv2.waitKey(0)
    ##这样是保存到了和当前运行目录下
    cv2.imencode('.jpg', img)[1].tofile('百合.jpg')

    info = img.shape#获取图像的尺寸
    height = info[0]
    width = info[1]
    dstH = int(height * 0.25)
    dstW = int(width * 0.25)
    mRes = cv2.resize(img, (dstW, dstH), 0, 0)
    cv2.imwrite("D:/img_resize.jpg", mRes)

 

参考:

https://blog.csdn.net/liuqinshouss/article/details/78696032

https://blog.csdn.net/qq_35570096/article/details/82955198

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值