opencv使用问题记录一二

opencv介绍

opencv是一个计算机视觉处理软件库,拥有强大的功能和高效的性能。

但是由于早期版本的原因,存在一些与目前主流使用不兼容的问题

问题与解决

RGB通道顺序

一般图片处理类库的通道顺序就是RGB,但是opencv的是反过来的,即BGR

如果需要对相关通道做计算、在其他类库中调用,则需要进行通道转换

cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

读取中文路径

opencv对中文支持是有问题的,对于utf8编码支持有问题,导致读取img对象是None

有个解决方法就是,先通过np将图像转为字节流形式,再给到opencv。这里我写了一个方法,后续直接调用这个方法即可

import cv2
import numpy as npdef cv_imread(file_path):"""读取图像,解决imread不能读取中文路径路径的问题:param file_path: 图像路径"""buf=np.fromfile(file_path,dtype=np.uint8)#imdedcode读取的是RGB图像cv_img = cv2.imdecode(buf,-1)return cv_img

设置中文标题

思路基本是绕过直接使用opencv的方法。同样写了一个方法

import win32gui
# import win32condef cv_set_titile(oldTitle,newTitle='中文',oneRun=False):"""设置窗口标题:param oldTitle: 旧标题:param newTitle: 新标题:param oneRun: 是否只运行一次:return:"""if oneRun == False:# 根据窗口名称查找其句柄 然后使用函数修改其标题# 尽量选择一个不常见的英文名 防止误该已有#的窗口标题 初始化时通常取无意义的名字  比如这里取‘aa’handle = win32gui.FindWindow(0, oldTitle)win32gui.SetWindowText(handle, newTitle)oneRun= Truereturn oneRun

调用

    cv2.imshow("aaa", img)cv_set_titile("aaa", newTitle='中文标题')

注意这里是通过标题找到对应窗口,调用windows api去修改窗口标题的,需要尽量避免标题有一样的,这样就可能出问题。或者直接设置为guid的,这样容错率更好。 

图片内容中文

这块可以直接看如下链接

【OpenCV】学习课-图像添加文字(3)!_cv2添加文字-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/pengneng123/article/details/130646667

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

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

相关文章

嵌入式会越来越卷吗?

当谈及嵌入式系统时,我们探究的不仅是一种科技,更是一个日益多元与普及的趋势。嵌入式系统,作为一种融入更大系统中的计算机硬件和软件,旨在执行特定功能或任务。但这个看似特定的系统概念,却在发展中展现出了惊人的灵…

创建型模式--4.抽象工厂模式【弗兰奇一家】

1. 奔向大海 在海贼世界中,位于水之都的弗兰奇一家是由铁人弗兰奇所领导的以拆船为职业的家族,当然了他们的逆向工程做的也很好,会拆船必然会造船。船是海贼们出海所必备的海上交通工具,它由很多的零件组成,从宏观上看…

fakebook-攻防世界

题目 先目录扫描一下 dirseach 打开flag.php是空白的 访问robots.txt,访问user.php.bak <?php class UserInfo { public $name ""; public $age 0; public $blog ""; public function __construct($name, $age, $blog) { …

软件安全评估之设计评审入门(上)

壹 基础概念 在软件开发生命周期&#xff08;Software Development Life Cycle&#xff0c;简称SDLC&#xff09;中&#xff0c;设计评审&#xff08;Design Review&#xff09;是一个关键的阶段&#xff0c;旨在确保软件设计满足项目需求和目标&#xff0c;并且能够高效、可靠…

工作这么久,你有测试思维了吗?

在如今竞争激烈的职场中&#xff0c;拥有测试思维已成为一个不可或缺的技能。无论你是从事软件开发、项目管理还是市场营销等各行各业&#xff0c;测试思维都能够帮助你更好地解决问题、提高工作效率以及保障质量。然而&#xff0c;工作时间的长短并不代表一个人是否具备测试思…

BC30002 未定义类型“SldWorks.sldworks”

BC30002 未定义类型“SldWorks.sldworks” BC30002 未定义类型“SldWorks.sldworks”问题描述解决办法 BC30002 未定义类型“SldWorks.sldworks” 问题描述 想要使用Visual Studio对Solidworks进行二次开发&#xff0c;但是刚刚开始就已经遇到了问题。 出现使用SLdworks.Sldwo…

Servlet(二)

文章目录 1.ServletConfig1.基本介绍2.应用实例1.DBServlet.java2.web.xml 2.ServletContext1.为什么需要ServletContext2. 基本介绍3.ServletContext 可以做什么4.应用实例一_获取工程相关信息1.ServletContext.java2.web.xml3.结果 5.应用实例二_完成简单网站访问计数器1.Pay…

20240325-1-HMM

HMM 直观理解 马尔可夫链&#xff08;英语&#xff1a;Markov chain&#xff09;&#xff0c;又称离散时间马尔可夫链&#xff08;discrete-time Markov chain&#xff0c;缩写为DTMC&#xff09;&#xff0c;因俄国数学家安德烈马尔可夫&#xff08;俄语&#xff1a;Андре…

语音特征的反应——语谱图

语谱图的横坐标为时间&#xff0c;纵坐标为对应时间点的频率。坐标中的每个点用不同颜色表示&#xff0c;颜色越亮表示频率越大&#xff0c;颜色越淡表示频率越小。可以说语谱图是一个在二维平面展示三维信息的图,既能够表示频率信息,又能够表示时间信息。 创建和绘制语谱图的…

[C++][算法基础]连通块中点的数量(并查集)

给定一个包含 n 个点&#xff08;编号为 1∼n&#xff09;的无向图&#xff0c;初始时图中没有边。 现在要进行 m 个操作&#xff0c;操作共有三种&#xff1a; C a b&#xff0c;在点 a 和点 b 之间连一条边&#xff0c;a 和 b 可能相等&#xff1b;Q1 a b&#xff0c;询问点…

CVE-2023-2928 DedeCMS 文件包含漏洞getshell 漏洞分析

DedeCMS&#xff08;也称为织梦CMS&#xff09;是一款基于PHPMySQL的开源内容管理系统。 在 DedeCMS 5.7.106 及之前的版本中发现一个漏洞。它已被宣布为关键。受此漏洞影响的是未知功能的文件uploads/dede/article_allowurl_edit.php。对参数 allurls 的操作会导致代码注入。…

【CHI】(十二)Memory Tagging

目录 1. Introduction 2. Message extensions 3. Tag coherency 4. Read transaction rules 4.1 TagOp values 4.2 Permitted initial MTE tag states 5. Write transactions 5.1 Permitted TagOp values 5.2 TagOp, TU, and tags relationship 6. Dataless transact…