opencv2-1随机图形与文字生成

这篇博客介绍了如何利用OpenCV的随机数生成器RNG创建随机图形,包括线段、文字等,并通过随机颜色和位置实现动态效果。文章详细讲解了线段绘制、颜色生成、文字显示等相关函数的使用方法,展示了OpenCV在图像处理中的灵活性。
摘要由CSDN通过智能技术生成
//--------------------------------------【程序说明】-------------------------------------------
// 程序说明:《OpenCV3编程入门》OpenCV2版书本附赠示例程序01
// 程序描述:随机图形和文字生成示例
// 测试所用操作系统: Windows 7 64bit
// 测试所用IDE版本:Visual Studio 2010
// 测试所用OpenCV版本: 2.4.9
// 2014年11月 Revised by @浅墨_毛星云
//------------------------------------------------------------------------------------------------
//---------------------------------【头文件、命名空间包含部分】----------------------------
// 描述:包含程序所使用的头文件和命名空间
//------------------------------------------------------------------------------------------------
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <stdio.h>
using namespace cv;
//-----------------------------------【全局变量声明部分】---------------------------------------
// 描述:声明全局变量
//---------------------------------------------------------------------------------------------------
const int NUMBER = 100;
const int DELAY = 5;
const int window_width = 900;
const int window_height = 600;
int x_1 = -window_width/2;
int x_2 = window_width*3/2;
int y_1 = -window_width/2;
int y_2 = window_width*3/2;
//-----------------------------------【函数声明部分】-------------------------------------------
// 描述:函数原型声明
//---------------------------------------------------------------------------------------------------
static Scalar randomColor( RNG& rng );
int Drawing_Random_Lines( Mat image, char* window_name, RNG rng );
int Drawing_Random_Rectangles( Mat image, char* window_name, RNG rng );
int Drawing_Random_Ellipses( Mat image, char* window_name, RNG rng );
int Drawing_Random_Polylines( Mat image, char* window_name, RNG rng );
int Drawing_Random_Filled_Polygons( Mat image, char* window_name, RNG rng );
int Drawing_Random_Circles( Mat image, char* window_name, RNG rng );
int Displaying_Random_Text( Mat image, char* window_name, RNG rng );
int Displaying_Big_End( Mat image, char* window_name, RNG rng );
//-----------------------------------【main( )函数】-------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( void )
{
  int c;
  //创建窗口
  char window_name[] = "Drawing_2程序窗口";
  // 创建随机的RNG
  RNG rng( 0xFFFFFFFF );
  //初始化矩阵
  Mat image = Mat::zeros( window_height, window_width, CV_8UC3 );
  // 在 DELAY ms内显示窗口
  imshow( window_name, image );
  waitKey( DELAY );
  //线条的绘制
  c = Drawing_Random_Lines(image, window_name, rng);
  if( c != 0 ) return 0;
  // 矩形的绘制
  c = Drawing_Random_Rectangles(image, window_name, rng);
  if( c != 0 ) return 0;
  // 椭圆的绘制
  c = Drawing_Random_Ellipses( image, window_name, rng );
  if( c != 0 ) return 0;
  // 折线的绘制
  c = Drawing_Random_Polylines( image, w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值