OpenCV (iOS)绘制文字(8)

代码解析

在绘制文字时主要应用putText函数来显示文字

putText函数

putText(InputOutputArray img,// 创建的空图像

              constString& text,// 要显示的内容(中文不知道怎么弄)

               Point org,// 显示字体的左下角位置(用来控制文字在图像中的位置)

               int fontFace,// 字体的样式

               double fontScale,// 字体大小

                Scalar color,// 字体颜色

                  int thickness =1,// 字体粗细

                   int lineType = LINE_8,// 线型

                   bool bottomLeftOrigin =false)// 这个设为 true 字体就倒置了

在OpenCV的库中提供的8种字体样式

#defineCV_FONT_HERSHEY_SIMPLEX        0

#defineCV_FONT_HERSHEY_PLAIN          1

#defineCV_FONT_HERSHEY_DUPLEX          2

#defineCV_FONT_HERSHEY_COMPLEX        3

#defineCV_FONT_HERSHEY_TRIPLEX        4

#defineCV_FONT_HERSHEY_COMPLEX_SMALL  5

#defineCV_FONT_HERSHEY_SCRIPT_SIMPLEX  6

#defineCV_FONT_HERSHEY_SCRIPT_COMPLEX  7

iOS中实现代码

创建空图像

RNG rng(0xFFFFFFFF);

Mat image = Mat::zeros(self.view.bounds.size.width, self.view.bounds.size.height, CV_8SC3);

调用显示文字的方法

writeRandomText(image, rng);

显示到UIImageView

imagView1.image = MatToUIImage(image);

显示文字的方法

void writeRandomText(Mat& image,RNG rng)

{

int lineType = 8;// 线形

cv::Point point;

for (int i = 0; i < 5; i++) {

point.x = rng.uniform(1, 100);

point.y = rng.uniform(1,400);

double fontScale = rng.uniform(1, 5);

putText(image, "fuck you", point, CV_FONT_BLACK, fontScale, randomColor(rng),lineType,false);

}

}

显示效果


OpenCV (iOS)绘制文字(8)_第1张图片

参考资料

OpenCV for iOS 学习笔记(七)—— 绘制文字

随机数发生器&绘制文字

你可能感兴趣的:(OpenCV (iOS)绘制文字(8))