看我怎么干它
一般正常imread()读取是下面这样
import cv2path=r'F:\青jia汇\shan瑚课堂作业\爬虫部分\scrapy5\zhihu_spider_selenium_code.py\image\0279050000e89b4d0000000bb5e46b543015.png'image=cv2.imread(path)
cv2.imshow('image',image)
cv2.waitKey(-1)
这样碰到中文路径就歇逼了。
然后别人说可以用plt加上encode读取
import matplotlib.pyplot as pltimport cv2
path=r'F:\青jia汇\shan瑚课堂作业\爬虫部分\scrapy5\zhihu_spider_selenium_code.py\image\0279050000e89b4d0000000bb5e46b543015.png' path1=path.encode("utf-8") img=plt.imread(path) cv2.imshow('img',img) cv2.waitKey(-1)
我试了,这个没什么用。
然后还有一种方法
使用np.fromfile()
读取路径为np.uint8
格式,然后使用cv2.imdecode()
读取数据
这个是真jiba好用。
import cv2 path=r'F:\青jia汇\shan瑚课堂作业\爬虫部分\scrapy5\zhihu_spider_selenium_code.py\image\0279050000e89b4d0000000bb5e46b543015.png' import numpy as np image = cv2.imdecode(np.fromfile(path, dtype=np.uint8), -1) blurred=cv2.GaussianBlur(image,(5,5),0) canny=cv2.Canny(blurred,200,400) cv2.imshow('canny',canny) cv2.waitKey(-1)