Commit 59915a3f authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

Merge pull request #10575 from ioxp:getFontScale

parents be1207e5 6032d86e
......@@ -4730,6 +4730,20 @@ CV_EXPORTS_W Size getTextSize(const String& text, int fontFace,
double fontScale, int thickness,
CV_OUT int* baseLine);
/** @brief Calculates the font-specific size to use to achieve a given height in pixels.
@param fontFace Font to use, see cv::HersheyFonts.
@param pixelHeight Pixel height to compute the fontScale for
@param thickness Thickness of lines used to render the text.See putText for details.
@return The fontSize to use for cv::putText
@see cv::putText
*/
CV_EXPORTS_W double getFontScaleFromHeight(const int fontFace,
const int pixelHeight,
const int thickness = 1);
/** @brief Line iterator
The class is used to iterate over all the pixels on the raster line
......
......@@ -2364,6 +2364,17 @@ Size getTextSize( const String& text, int fontFace, double fontScale, int thickn
return size;
}
double getFontScaleFromHeight(const int fontFace, const int pixelHeight, const int thickness)
{
// By https://stackoverflow.com/a/27898487/1531708
const int* ascii = getFontData(fontFace);
int base_line = (ascii[0] & 15);
int cap_line = (ascii[0] >> 4) & 15;
return static_cast<double>(pixelHeight - static_cast<double>((thickness + 1)) / 2.0) / static_cast<double>(cap_line + base_line);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment