美文网首页
OpenCV (iOS)绘制文字(8)

OpenCV (iOS)绘制文字(8)

作者: 傻傻小萝卜 | 来源:发表于2017-05-04 10:31 被阅读82次

    代码解析

    在绘制文字时主要应用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 for iOS 学习笔记(七)—— 绘制文字

    随机数发生器&绘制文字

    相关文章

      网友评论

          本文标题:OpenCV (iOS)绘制文字(8)

          本文链接:https://www.haomeiwen.com/subject/dwertxtx.html