用OpenCV好多年了,近日突然发现它的字符写入功能并不支持中文的写入(写入会出现乱码),是故本篇介绍下怎么补齐这一缺陷(当然正常情况下是用不着这个功能的)。
网上一般推荐用Freetype来做,但写好的OpenCV2接口上的代码不完善,得到的效果差强人意:

可以看到有明显的锯齿,因此看了下接口发现是参数调用问题,OpenCV1接口的代码似乎很OK,正要修改的时候发现有现成的不用Freetype的实现,实在是万分高兴,直接就抄了一波。万分感谢这位老哥!
代码十分简练,如下:
putText.h
#ifndef PUTTEXT_H_
#define PUTTEXT_H_
#include <windows.h>
#include <string>
#include <opencv2/opencv.hpp>
using namespace cv;
void GetStringSize(HDC hDC, const char* str, int* w, i
这篇博客介绍了如何在OpenCV中解决中文字符写入出现乱码的问题。通常建议使用Freetype,但作者发现现有OpenCV2接口存在锯齿问题。通过研究和调整,找到了一个基于OpenCV1接口的简洁实现,避免使用Freetype,实现了良好的效果。
订阅专栏 解锁全文
1379

被折叠的 条评论
为什么被折叠?



