<pre class="lang-py prettyprint-override"><code>fontScale = 1
fontThickness = 1
# make sure font thickness is an integer, if not, the OpenCV functions that use this may crash
fontThickness = int(fontThickness)
upperLeftTextOriginX = int(imageWidth * 0.05)
upperLeftTextOriginY = int(imageHeight * 0.05)
textSize, baseline = cv2.getTextSize(resultText, fontFace, fontScale, fontThickness)
textSizeWidth, textSizeHeight = textSize
# calculate the lower left origin of the text area based on the text area center, width, and height
lowerLeftTextOriginX = upperLeftTextOriginX
lowerLeftTextOriginY = upperLeftTextOriginY + textSizeHeight
# write the text on the image
cv2.putText(openCVImage, resultText, (lowerLeftTextOriginX, lowerLeftTextOriginY), fontFace, fontScale, Color,
fontThickness)
</code></pre>
<p>看起来<code>fontScale</code>没有根据图像的宽度和高度缩放文本,因为对于不同大小的图像,文本的大小几乎相同。那么,如何根据图像大小调整文本大小,使所有文本都能放入图像中呢</p>
<p>这一切都成功了</p>
<pre><code>scale = 1 # this value can be from 0 to 1 (0,1] to change the size of the text relative to the image
fontScale = min(imageWidth,imageHeight)/(25/scale)
</code></pre>
<p>请记住,字体类型可能会影响25常量</p>