Кто-нибудь знает, как написать код (C / C ++) для вставки текста в изображения без использования функции puttext в opencv? Я довольно долго искал эту функцию, но не смог найти решение.
Я рекомендую CImg Вам — это чистый, современный C ++ и очень способный. Это очень просто для интеграции в проект, потому что это * «только заголовок ** — только один включаемый файл и нет библиотек для ссылки.
Умеет читать и писать NetPBM файлы (PGM, PPM и т. д.) изначально без каких-либо специальных ссылок и могут читать и записывать все остальное, используя libjpeg
, libtiff
, libpng
или же ImageMagick.
Он также может отображать изображения на X11 или в Windows через GDI, если вы этого хотите.
#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");
}
Других решений пока нет …