有谁知道如何编写代码(C/C++)在不使用opencv中的puttext函数的情况下将文本放入图像中?我一直在谷歌搜索这个功能很长一段时间,但没有设法得到解决方案。
问问题
3775 次
1 回答
5
我向你推荐 CImg - 它是干净、现代的 C++ 并且非常有能力。集成到项目中非常简单,因为它是*“仅头文件** - 只有一个包含文件,没有要链接的库。
它可以在没有任何特殊链接的情况下本机读取和写入NetPBM文件(PGM、PPM 等) ,并且可以使用 、 或 ImageMagick 读取和写入libjpeg
其他所有文件。libtiff
libpng
如果您愿意,它还可以通过 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 回答