opencv在图像显示中文
作者:@houkai
本文为作者原创,转载请注明出处:https://www.cnblogs.com/houkai/p/4865937.html
在图像定位和模式识别时,经常需要把结果标注到图片上,标注内容可以是数字字母、矩形框等(opencv支持的)或者是中文汉字(借助freetype)。
1、显示数字/矩形框
#include <opencv/highgui.h> using namespace cv; //绘画 Mat image = imread(image_root + filename); Point p1(x,y), p2(x+w,y+h), p0(x+w/2, y+h/2); string label = 123456789; //数字 rectangle(image, p1, p2, Scalar(255, 0, 0)); putText(image, label.c_str(), p0, CV_FONT_HERSHEY_COMPLEX, 0.5, Scalar(0, 255, 0)); imwrite( image_root2 + filename, image );
首先,下载freetype-2.6,在build/windows/vc2010中编译项目(我使用的是vs2012),在/objs/vc2010/Win32/下生成静态链接库freetype26.lib。
然后,新建项目,将freetype的include文件夹添加到项目的包含路径中,将freetype26.lib添加到链接文件中。添加汉字绘制类CvxText,编写例子:
#include <opencv/highgui.h> #include <assert.h> #include "CvxText.h" using namespace cv; int main() { IplImage *image = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_COLOR); assert(image); // 输出汉字 { // C:\\Windows\\Fonts为windows系统自带的字体,选择中文的 CvxText text("C:\\Windows\\Fonts\\FZSTK.TTF"); const char *msg = "在OpenCV中输出汉字!"; float p = 0.5; text.setFont(NULL, NULL, NULL, &p); // 透明处理 text.putText(image, msg, cvPoint(100, 150), CV_RGB(0,0,255)); Mat mat(image); imwrite( "pro.jpg", mat ); } cvReleaseImage(&image); return 0; }
项目下载。
参考:http://blog.csdn.net/fengbingchun/article/details/8029337
分类:
图像算法及OpenCV
标签:
opencv
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2013-10-10 Windows下MySQL的常用操作