Opencvランダムジェネレータとテキスト
2421 ワード
乱数ジェネレータオブジェクト(RNG)を作成します.ゼロに初期化されたマトリクス(黒)を作成し、その高さ、幅、タイプを指定します. を描くことができます. Display_Random_Text
テスト:
RNG rng(0xFFFFFFFF)
Mat image = Mat :: zeros(window_height,window_width,CV_8UC3);
imshow(window_name,image);
幾何学的図形c = Drawing_Random_Circles(image,window_name,rng);
if(c!= 0)return 0;
c = Drawing_Random_Rectangles(image,window_name,rng);
if(c!= 0)return 0;
検出関数Drawing_Random_Lines: int Drawing_Random_Lines( Mat image, char* window_name, RNG rng )
{
int lineType = 8;
Point pt1, pt2;
for( int i = 0; i < NUMBER; i++ )
{
pt1.x = rng.uniform( x_1, x_2 ); //
pt1.y = rng.uniform( y_1, y_2 ); //rng.uniform y_1 y_2
pt2.x = rng.uniform( x_1, x_2 );
pt2.y = rng.uniform( y_1, y_2 ); //
line( image, pt1, pt2, randomColor(rng), rng.uniform(1, 10), 8 ); // randomColor()
imshow( window_name, image );
if( waitKey( DELAY ) >= 0 )
{ return -1; }
}
return 0;
}
Display_Random_TextとDispalying_Big_Endの機能int Displaying_Random_Text( Mat image, char* window_name, RNG rng )
{
int lineType = 8;
for ( int i = 1; i < NUMBER; i++ )
{
Point org;
org.x = rng.uniform(x_1, x_2);
org.y = rng.uniform(y_1, y_2);
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); // **“ ”**
imshow( window_name, image );
if( waitKey(DELAY) >= 0 )
{ return -1; }
}
return 0;
}
Dispalying_Big_End int Displaying_Big_End( Mat image, char* window_name, RNG rng )
{
Size textsize = getTextSize("OpenCV forever!", FONT_HERSHEY_COMPLEX, 3, 5, 0);
Point org((window_width - textsize.width)/2, (window_height - textsize.height)/2);
int lineType = 8;
Mat image2;
for( int i = 0; i < 255; i += 2 )
{
image2 = image - Scalar::all(i); //,image2 Scalar :: all(i) 。 , ,image2 i ( , , , R,G B, )
putText( image2, "OpenCV forever!", org, FONT_HERSHEY_COMPLEX, 3,
Scalar(i, i, 255), 5, lineType );
imshow( window_name, image2 );
if( waitKey(DELAY) >= 0 )
{ return -1; }
}
return 0;
}
テスト: