opencv中文路径问题

目的

在windows系统上,就是直接用QT的utf8编码作为图片路径用在opencv读取或者写入函数,在路径当中含有中文时,会提示编码错误。
就是解决opencv中的中文路径的问题。

情况

代码如下:

#pragma execution_character_set("utf-8")
#include <QApplication>
#include <QDebug>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char *argv[])
{QApplication a(argc, argv);//MainWindow w;//w.show();//QString str = QString::fromUtf8("E:\\temp\\lushanjing3.jpg");QString str = QString::fromUtf8("E:\\temp\\图片\\lushanjing2.jpg");qDebug()<<str;Mat img = imread(str.toStdString());//图片路径//处理前imshow("img",img);//显示图片//Mat resimg;//高斯模糊//cv::GaussianBlur(img,resimg,Size(5,5),0);//imshow("resimg",resimg);//显示图片waitKey(2000);//等待按键return a.exec();
}

运行情况:

17:21:01: Starting E:\project2023\example\openCv1\build-openCv1-Desktop_Qt_5_11_3_MSVC2015_64bit-Release\release\openCv1...
"E:\\temp\\图片\\lushanjing2.jpg"
[ WARN:0@0.071] global E:\openSource\opencv4.5\opencv-4.5.5\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('E:\temp\鍥剧墖\lushanjing2.jpg'): can't open/read file: check file path/integrity
1127, FromFilemap
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.5.5) Error: Assertion failed (!_src.empty()) in cv::cvtColor, file E:\openSource\opencv4.5\opencv-4.5.5\modules\imgproc\src\color.cpp, line 182
17:21:02: 程序异常结束。
17:21:02: The process was ended forcefully.

这个问题就是中文路径的问题。
如何解决呢?
在Qt中使用OpenCV打开含有中文路径的图片时,可能会遇到编码问题。这是因为Qt默认使用的是UTF-8编码,而Windows系统中路径字符串通常使用的是GBK或其他编码。
为了解决这个问题,可以在打开文件前将中文路径转换为OpenCV可以理解的编码格式。
代码更改如下:

//#include "mainwindow.h"
#pragma execution_character_set("utf-8")
#include <QApplication>
#include <QDebug>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char *argv[])
{QApplication a(argc, argv);//MainWindow w;//w.show();//QString str = QString::fromUtf8("E:\\temp\\lushanjing3.jpg");QString str = QString::fromUtf8("E:\\temp\\图片\\lushanjing2.jpg");//QString str = QString::fromLocal8Bit("E:\\temp\\图片\\lushanjing2.jpg");qDebug()<<str;Mat img = imread(str.toLocal8Bit().toStdString());//图片路径//处理前imshow("img",img);//显示图片//Mat resimg;//高斯模糊//cv::GaussianBlur(img,resimg,Size(5,5),0);//imshow("resimg",resimg);//显示图片waitKey(2000);//等待按键return a.exec();
}

运行情况如下:
在这里插入图片描述

显然是可以成功运行的。

总结

其关键在于用了toLocal8Bit()的编码转化,这一个函数的解释如下:
以QByteArray形式返回字符串的本地8位表示形式。如果字符串包含本地8位编码不支持的字符,则返回的字节数组是未定义的。
简单来说就是,以转化为以本地编码的字符串,显然适应了当前的要求:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI框架之langchain

官方文档 简介 LangChain 是一个开源的 Python 库,旨在简化大语言模型(LLM)在应用程序中的使用和集成。它提供了一种结构化的方法来构建基于 LLM 的应用程序,并解决了许多常见的开发挑战。 LangChain 的核心组件 代理(Agents) 代理是 LangChain 中最强大的概念之一。代理可…

以CMDB为基础构建DevOps平台体系

在当今数字化转型的浪潮中&#xff0c;企业IT运维模式正从传统的资产管理向现代化的资源管理转变。配置管理数据库&#xff08;CMDB&#xff09;作为IT运维的核心组成部分&#xff0c;其在DevOps平台中的重要性愈加凸显。通过国信证券和招商银行的实际案例&#xff0c;我们将详…

编程牛人验证码怎么输入:深度剖析与策略指导

编程牛人验证码怎么输入&#xff1a;深度剖析与策略指导 在数字时代的浪潮中&#xff0c;编程牛人们时常面临着各种技术挑战&#xff0c;其中之一便是验证码的输入问题。验证码作为一种安全验证机制&#xff0c;旨在防止自动化脚本或机器人的恶意行为。但对于编程高手而言&…

YOLOv8改进 | 注意力机制 | 用于增强小目标感受野的RFEM

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡 专栏目录 :《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck、NMS等创新点改进——点击即可跳转 近年来,基于深度学习的人脸检测算法取得了…

css 文字下划线 text-decoration

背景&#xff1a; 在某些时候需要给文字添加特殊样式。使用 text-decoration: underline; 来为段落文字添加下划线。也有其它文本装饰样式&#xff0c;例如&#xff1a; none&#xff1a;无装饰&#xff08;去掉装饰&#xff09;overline&#xff1a;上划线line-through&…

《珊瑚岛》是一款什么类型的游戏 苹果电脑如何玩到《珊瑚岛》

在众多电子游戏中&#xff0c;有些游戏因其独特的游戏体验和丰富的内容而脱颖而出&#xff0c;《珊瑚岛》便是其中之一。在游戏中你将离开宝京前往珊瑚岛&#xff0c;种植农作物、饲养动物、和岛民成为朋友。您不仅可以振兴该岛小镇&#xff0c;还可以保护和修复周围的珊瑚礁。…

C# OpenCV 部署RecRecNet广角图像畸变矫正

C# OpenCV 部署RecRecNet广角图像畸变矫正 目录 说明 效果 模型信息 项目 代码 下载 说明 ICCV2023 - RecRecNet: Rectangling Rectified Wide-Angle Images by Thin-Plate Spline Model and DoF-based Curriculum Learning 参考&#xff1a; https://github.com/Kang…

CleanMyMac中文版2024破解完美版本下载链接

CleanMyMac中文版&#xff0c;是一款功能强大的系统优化软件。它能够帮助你清理垃圾文件、卸载无用应用、优化内存使用等&#xff0c;让你的电脑运行更加流畅稳定。 CleanMyMac中文版具有智能扫描功能&#xff0c;能够自动识别电脑上的垃圾文件和冗余数据。它能够快速扫描整个…

IPython 使用技巧整理

IPython 是一个增强的 Python 交互式 shell&#xff0c;提供了许多实用的功能和特性&#xff0c;使得 Python 编程和数据科学工作变得更加便捷和高效。以下是一些 IPython 的使用技巧整理&#xff1a; 1. 自动补全和查询 Tab 补全&#xff1a;在 IPython 中&#xff0c;你可以…

【MongoDB 新搭档 Kafka】

对于做过数据处理&#xff0c;使用过消息队列的小伙伴 &#xff0c;Kafka可以算是老朋友了&#xff0c;但是最近一个场景下&#xff0c;新的用法&#xff0c;让其变为了MongoDB的新搭档。 开始 从一个问题开始&#xff0c;熟悉MongoDB的小伙伴&#xff0c;可能使用过changeSt…

Java的三个接口Comparable,Comparator,Cloneable(浅拷贝与深拷贝)

Comparable 当我们要进行对象的比较的时候&#xff0c;我们是不能直接用>、< 这些符号直接进行比较的。 由于这是引用类型变量也是自定义类型变量&#xff0c;直接进行比较的时候&#xff0c;我们是通过对象的地址进行比较的&#xff0c;我们可以使用、! 进行两个对象的…

解决 pdf.js 出现 TypeError: key.split(...).at is not a function 报错问题

问题 使用pdf.js v2版本部分机型出现 TypeError: key.split(…).at is not a function 报错 解决 参考 https://github.com/wojtekmaj/react-pdf/issues/1465 方式一&#xff08;推荐&#xff09; import core-js/features/array/at;方式二 (解决了部分机型浏览器问题) if …

Spring Cloud 专题-前言篇(1)

引言 随着微服务架构的兴起&#xff0c;Spring Cloud 作为一套基于 Spring Boot 实现的云应用开发工具集&#xff0c;为开发者提供了在分布式系统&#xff08;如配置管理、服务发现、断路器、智能路由、微代理、控制总线等&#xff09;中快速构建一些常见模式的能力。本篇文档…

2024年大韩民国最佳品牌大赏 彭雨凡荣获“海外邀请特别奖”

14日&#xff0c;“2024年大韩民国最佳品牌大赏-韩流演艺大赏”颁奖典礼在韩国首尔永登浦区汝矣岛洞国会议员会馆第2会议室举办。 演员彭雨凡荣获“海外邀请特别奖”。 据悉&#xff0c;由大韩民国最佳品牌协会和世宗大王国民委员会&#xff08;理事长 LEE YUNTAE&#xff09…

关于IOMMU问题的扩展

关联CSDN&#xff1a; Steam Deck OLED WLAN下载速率过低问题的排查和解决-CSDN博客 前言 如前所述&#xff0c;Steam Deck OLED WLAN速率低问题和IOMMU有一定的关系&#xff0c;这里我们对IOMMU为什么会对速率有影响进行一个较深入的理解。 对于IOMMU我相信大家通过网上的…

模板引擎与 XSS 防御

在 View 层&#xff0c;可以解决 XSS 问题。在本书的“跨站脚本攻击”一章中&#xff0c;阐述了“输入检查” 与“输出编码”这两种方法在 XSS 防御效果上的差异。XSS 攻击是在用户的浏览器上执行的&#xff0c; 其形成过程则是在服务器端页面渲染时&#xff0c;注入了恶意的 H…

Android中的Audio系统框架分析(一)

概述 Audio系统是Android 平台重要的组成部分&#xff0c;我们将从以下几个方面来讲解&#xff1a; 一Audio基础知识讲解 二、Android系统中Audio框架 Audio基础知识讲解 我们大家知道声音是由物体振动产生的声波。是通过介质&#xff08;空气或固体、液体&#xff09;传播并…

CrossOver Games For Mac官方下载_2024电脑最新版软件安装包下载

CrossOver Pro For Mac是由codewaver公司开发的类虚拟机软件&#xff0c;目的是使linux和Mac OS X操作系统和window系统兼容。CrossOver Pro For Mac能够直接在Mac上运行Windows软件与游戏&#xff0c;而不需虚拟机&#xff0c;功能是非常强大的&#xff0c;值得大家下载使用。…

Linux系统基本知识----1

1.什么是Linux中的权限&#xff0c;并举例说明。 ****Linux权限是操作系统用来控制特定用户或用户组可以对文件或目录执行的操作的一种机制。例如&#xff0c;chmod 755 filename 命令会设置filename文件的权限&#xff0c;使得拥有者可以读/写/执行&#xff0c;而组用户和其他…

Android Audio实战——声道信息回调(五)

在前面的 AudioTrack 构造中,我们传入了音频的声道信息,这一节我们就来详细介绍一下声道的配置信息。 一、声道介绍 音频中的声道配置从单声道到双声道(立体声)、再到多声道系统(如5.1和7.1),代表了声音录制和回放技术的发展,旨在提供越来越丰富和沉浸式的听觉体验。 …