-2

有谁知道如何编写代码(C/C++)在不使用opencv中的puttext函数的情况下将文本放入图像中?我一直在谷歌搜索这个功能很长一段时间,但没有设法得到解决方案。

4

1 回答 1

5

我向你推荐 CImg - 它是干净、现代的 C++ 并且非常有能力。集成到项目中非常简单,因为它是*“仅头文件** - 只有一个包含文件,没有要链接的库。

它可以在没有任何特殊链接的情况下本机读取和写入NetPBM文件(PGM、PPM 等) ,并且可以使用 、 或 ImageMagick 读取和写入libjpeg其他所有文件libtifflibpng

如果您愿意,它还可以通过 GDI 在 X11 或 Windows 上显示图像。

#include <iostream>
#include <cstdlib>
#define cimg_display 0
#include "CImg.h"

using namespace cimg_library;
using namespace std;

int main() {
   // Create 640x480 image
   CImg<unsigned char> image(640,480,1,3);

   // Fill with magenta
   cimg_forXY(image,x,y) {
      image(x,y,0,0)=255;
      image(x,y,0,1)=0;
      image(x,y,0,2)=255;
   }

   // Make some colours
   unsigned char cyan[]    = {0,   255, 255 };
   unsigned char black[]   = {0,   0,   0   };
   unsigned char yellow[]  = {255, 255, 0   };

   // Draw black text on cyan
   image.draw_text(30,60,"Black 64pt on cyan",black,cyan,1,64);

   // Draw yellow partially transparent text on black
   image.draw_text(80,200,"Yellow 32pt on black semi-transparent",yellow,black,0.5,32);

   // Save result image as NetPBM PNM - no libraries required
   image.save_pnm("result.pnm");
}

在此处输入图像描述

于 2018-03-21T09:08:52.977 回答