news 2026/6/15 17:39:10

CLion + OpenCV + Utf8 终极解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CLion + OpenCV + Utf8 终极解决方案

下载安装 OpenCV

到官网:https://opencv.org/releases/选择对应版本下载

找到安装包双击即可


设置环境变量

使用 CLion 新建 OpenCV 工程



将Cmakelist.txt 替换成以下文本

cmake_minimum_required(VERSION 4.2) project(untitled) set(CMAKE_CXX_STANDARD 20) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(${PROJECT_NAME} main.cpp) target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

解决乱码问题

统一全链路UTF-8配置(最推荐,治本之策)

让编辑器、编译器、程序运行环境全部使用UTF-8,彻底消除Windows带来的编码差异。

修改 CLion 设置

打开设置:File->Settings(Ctrl + Alt + S)。

编辑器设置:进入Editor->File Encodings,将Global EncodingProject EncodingDefault encoding for properties files全部设置为UTF-8

控制台设置:进入Editor->General->Console,将Default encoding设置为UTF-8

加入这个函数

#include<opencv2/opencv.hpp>#include<windows.h>#include<string>std::stringutf8ToGBK(std::string utf8String){intwlen=MultiByteToWideChar(CP_UTF8,0,utf8String.c_str(),-1,nullptr,0);wchar_t*wstr=newwchar_t[wlen];MultiByteToWideChar(CP_UTF8,0,utf8String.c_str(),-1,wstr,wlen);intglen=WideCharToMultiByte(CP_ACP,0,wstr,-1,nullptr,0,nullptr,nullptr);char*gstr=newchar[glen];WideCharToMultiByte(CP_ACP,0,wstr,-1,gstr,glen,nullptr,nullptr);std::stringresult(gstr);delete[]wstr;delete[]gstr;returnresult;}

函数调用

cv::namedWindow(utf8ToGBK("中文标题"));cv::imshow(utf8ToGBK("中文标题"),img);

最终测试代码

/** * Copyright (C) 2026 - 2026 Jasonakeke, Inc. All Rights Reserved * * @Desc : * @Time : 2026/6/11 21:59 * @Author : Code_By_Jasonakeke * @Email : 2284037977@qq.com * @Class : AdjustBrightnessSlider * @IDE : CLion */#include<opencv2/opencv.hpp>#include<windows.h>#include<string>// 当前亮度值intbrightValue=50;// 对比度intcontrastValue=50;cv::Mat dstImg;std::stringutf8ToGBK(std::string utf8String){intwlen=MultiByteToWideChar(CP_UTF8,0,utf8String.c_str(),-1,nullptr,0);wchar_t*wstr=newwchar_t[wlen];MultiByteToWideChar(CP_UTF8,0,utf8String.c_str(),-1,wstr,wlen);intglen=WideCharToMultiByte(CP_ACP,0,wstr,-1,nullptr,0,nullptr,nullptr);char*gstr=newchar[glen];WideCharToMultiByte(CP_ACP,0,wstr,-1,gstr,glen,nullptr,nullptr);std::stringresult(gstr);delete[]wstr;delete[]gstr;returnresult;}voidadjust(intpos,void*userData){// 获取当前滑动条的值// int currentPos = cv::getTrackbarPos("亮度调节", "亮度调节窗口");// int currentPos = pos;cv::Mat img=*static_cast<cv::Mat*>(userData);intbright=brightValue-50;// 映射到0.02 - 2doublecontrast=static_cast<double>(contrastValue)/50;// 对比度 和亮度img.convertTo(dstImg,-1,contrast,bright);cv::imshow(utf8ToGBK("亮度对比度调节窗口"),dstImg);}intmain(intargc,char*argv[]){// 滑动条// 加载图片cv::Mat img=cv::imread("../flower.jpg");if(img.empty()){std::cout<<"Could not open or find the image"<<std::endl;return-1;}// 创建滑动条要绑定的窗口cv::namedWindow(utf8ToGBK("亮度对比度调节窗口"));// 创建滑动条cv::createTrackbar(utf8ToGBK("亮度调节"),utf8ToGBK("亮度对比度调节窗口"),nullptr,100,adjust,&img);cv::createTrackbar(utf8ToGBK("对比度调节"),utf8ToGBK("亮度对比度调节窗口"),nullptr,100,adjust,&img);cv::waitKey(0);return0;}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 17:57:07

MC56F827xx中断控制器配置实战:优先级、快速中断与电机控制优化

1. 中断控制器&#xff08;INTC&#xff09;在MC56F827xx中的核心地位与设计哲学在嵌入式实时系统&#xff0c;尤其是像MC56F827xx这类面向数字信号处理与电机控制的高性能混合信号控制器中&#xff0c;中断控制器&#xff08;INTC&#xff09;的角色绝非一个简单的“开关”或“…

作者头像 李华
网站建设 2026/6/13 17:57:07

TRO 2026|机器人想精准挖土,能不能先在仿真里把“土”学明白?

哈喽大家好&#xff0c;我是疯狂读论文的戴夫。今天继续啃一篇论文。 机器人挖土这件事&#xff0c;听起来很朴素。 拿个铲子&#xff0c;插进去&#xff0c;往前推&#xff0c;再抬起来&#xff0c;好像就是这么几步。但真正让机器人去做&#xff0c;就会发现这件事一点也不简…

作者头像 李华
网站建设 2026/6/15 17:34:31

MC13234/MC13237引脚设计、电源与射频布局实战指南

1. 项目概述&#xff1a;从引脚定义到系统设计的深度拆解在嵌入式硬件设计领域&#xff0c;尤其是涉及无线通信的物联网节点或传感器模块时&#xff0c;选对一颗集成度高的微控制器只是第一步&#xff0c;真正考验工程师功力的&#xff0c;是如何“驯服”芯片那几十个看似简单、…

作者头像 李华
网站建设 2026/6/13 17:55:17

5分钟掌握BepInEx:游戏模组开发的终极入门指南

5分钟掌握BepInEx&#xff1a;游戏模组开发的终极入门指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想要为Unity游戏添加自定义功能或修改游戏体验吗&#xff1f;BepInEx游戏…

作者头像 李华
网站建设 2026/6/13 17:47:52

如何快速掌握VLC Android投屏:无线流媒体终极教程

如何快速掌握VLC Android投屏&#xff1a;无线流媒体终极教程 【免费下载链接】vlc-android VLC for Android, Android TV and ChromeOS 项目地址: https://gitcode.com/gh_mirrors/vl/vlc-android VLC for Android是一款功能强大的开源媒体播放器&#xff0c;支持在An…

作者头像 李华