我想将具有任意系统支持字体的字符串打印到图像中,但是,据我所知,OpenCV中的内置函数putText
仅支持有限字体。具体来说,我想要的功能是这样的(如果用C ++编写):
void drawString(string& s, Image& I, string& fontName)
{
...
}
调用它drawString("this is a string", I, "Times New Roman")
将以Times New Roman字体打印字符串,drawString("this is another string", I, "Helvetica")
将以Helvetica字体打印字符串。
我更喜欢使用C ++,但任何其他语言也都可以。
函数drawString
还应该包含一些关于操纵字符的代码,例如随机角度和位移的旋转和平移。
有什么想法吗?
答案 0 :(得分:0)
根据我的经验,ImageMagick是一个很棒的通用图像处理工具链和API。
命令行和API之间有明确的对应关系。因此,您可以直接从shell执行命令:
convert temp.jpg -gravity Center -pointsize 30 -annotate 0 '1Il|iO0oB8' temp1.jpg
... Which maps directly to the Magick++ API