OpenCV 【十六】RNG随机数发生器putText绘制文字
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 【十六】RNG随机数发生器putText绘制文字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
1 目的
-
使用 隨機數發生器類 (RNG) 并得到均勻分布的隨機數。
-
通過使用函數 putText 顯示文字。
第一步是實例化一個 Random Number Generator(隨機數發生器對象) (RNG):
RNG rng( 0xFFFFFFFF );
初始化一個 0 矩陣(代表一個全黑的圖像), 并且指定它的寬度,高度,和像素格式:
/// 初始化一個0矩陣
Mat image = Mat::zeros( window_height, window_width, CV_8UC3 );
?
/// 把它會知道一個窗口中
imshow( window_name, image );
?
putText( image, "Testing text rendering", org, rng.uniform(0,8),rng.uniform(0,100)*0.05+0.1, randomColor(rng), rng.uniform(1, 10), lineType);
函數 putText 都做了些什么?在我們的例子中:
-
在 image 上繪制文字 “Testing text rendering” 。
-
文字的左下角將用點 org 指定。
-
字體參數是用一個在 ![0, 8> 之間的整數來定義。
-
字體的縮放比例是用表達式 rng.uniform(0, 100)x0.05 + 0.1 指定(表示它的范圍是 ![0.1, 5.1>)。
-
字體的顏色是隨機的 (記為 randomColor(rng))。
-
字體的粗細范圍是從 1 到 10, 表示為 rng.uniform(1,10) 。
因此, 我們將繪制 (與其余函數類似) NUMBER 個文字到我們的圖片上,以位置隨機的方式。
2 代碼
static Scalar randomColor(RNG& rng)
{int icolor = (unsigned)rng;return Scalar(icolor & 255, (icolor >> 8) & 255, (icolor >> 16) & 255);
}
int window_height =400, window_width = 400;
int main(int argc, char** argv) {RNG rng(0xFFFFFFFF);/// 初始化一個0矩陣Mat image = Mat::zeros(window_height, window_width, CV_8UC3);
?/// 在隨機的地方繪制文字int c = Displaying_Random_Text(image, "window_name", rng);if (c != 0) return 0;
?for (size_t i = 0; i < 10; i++){
?Point org;org.x = rng.uniform(1, 200);org.y = rng.uniform(2, 400);putText(image, "Testing text rendering", org, rng.uniform(0, 8),rng.uniform(0, 10)*0.05 + 0.1, randomColor(rng), rng.uniform(1, 2), LINE_8);}
?/// 等待用戶按鍵waitKey();return 0;
?
}
?
3 結果
?
總結
以上是生活随笔為你收集整理的OpenCV 【十六】RNG随机数发生器putText绘制文字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV 【十五】绘直线/椭圆/矩形
- 下一篇: 神迹六龙