使用 cv2.imread 加载图片
load image using cv2.imread
当我尝试使用 cv2.imread
从路径加载图像时,它显示 'none'。
我创建了 UI 来使用 flask 上传图像。
这是我所做的:
UPLOAD_FOLDER = os.path.dirname(os.path.abspath(__file__))
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg'])
app = Flask(__name__)
#app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def uploadfile():
return render_template('home.html')
@app.route('/uploader', methods=['GET', 'POST'])
def upload_file():
target = os.path.join(UPLOAD_FOLDER, 'static/')
upload = os.path.join(target, 'uploads/')
if not os.path.isdir(target):
os.mkdir(target)
os.mkdir(upload)
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(upload, filename))
image=cv2.imread('/home/user/image/static/uploads/filename')
print("image",image)
我的图片没有加载到 'image'。打印结果为
image,None ,
来自 cv2.imread
的 NoneType
错误中约有 95% 来自文件路径无效
(OpenCV: Resolving NoneType errors)。也就是说,路径规范错误或缺少某些内容,或者文件名不完整 - 可能缺少扩展名(png、jpg 等)
current list of supported image file types包括:
- Windows 位图 - *.bmp, *.dib
- JPEG 文件 - *.jpeg、*.jpg、*.jpe
- JPEG 2000 文件 - *.jp2
- 便携式网络图形 - *.png
- WebP - *.webp
- 便携式图像格式 - *.pbm、*.pgm、*.ppm *.pxm、*.pnm
- 太阳栅格 - *.sr、*.ras
- TIFF 文件 - *.tiff、*.tif
- OpenEXR 图像文件 - *.exr
- 辐射 HDR - *.hdr, *.pic
- Gdal 支持的栅格和矢量地理空间数据
如果支持图片类型,请检查路径和文件名是否正确。
我的路径不正确
image=cv2.imread(os.path.join(upload,filename))
以上解决了我的问题
当我尝试使用 cv2.imread
从路径加载图像时,它显示 'none'。
我创建了 UI 来使用 flask 上传图像。
这是我所做的:
UPLOAD_FOLDER = os.path.dirname(os.path.abspath(__file__))
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg'])
app = Flask(__name__)
#app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def uploadfile():
return render_template('home.html')
@app.route('/uploader', methods=['GET', 'POST'])
def upload_file():
target = os.path.join(UPLOAD_FOLDER, 'static/')
upload = os.path.join(target, 'uploads/')
if not os.path.isdir(target):
os.mkdir(target)
os.mkdir(upload)
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(upload, filename))
image=cv2.imread('/home/user/image/static/uploads/filename')
print("image",image)
我的图片没有加载到 'image'。打印结果为
image,None ,
来自 cv2.imread
的 NoneType
错误中约有 95% 来自文件路径无效
(OpenCV: Resolving NoneType errors)。也就是说,路径规范错误或缺少某些内容,或者文件名不完整 - 可能缺少扩展名(png、jpg 等)
current list of supported image file types包括:
- Windows 位图 - *.bmp, *.dib
- JPEG 文件 - *.jpeg、*.jpg、*.jpe
- JPEG 2000 文件 - *.jp2
- 便携式网络图形 - *.png
- WebP - *.webp
- 便携式图像格式 - *.pbm、*.pgm、*.ppm *.pxm、*.pnm
- 太阳栅格 - *.sr、*.ras
- TIFF 文件 - *.tiff、*.tif
- OpenEXR 图像文件 - *.exr
- 辐射 HDR - *.hdr, *.pic
- Gdal 支持的栅格和矢量地理空间数据
如果支持图片类型,请检查路径和文件名是否正确。
我的路径不正确
image=cv2.imread(os.path.join(upload,filename))
以上解决了我的问题