C语言在opencv上创建纯色背景图,并随机生成圆 (opencv入门)

本文介绍如何使用C语言结合OpenCV库创建纯色背景图,并通过随机生成的圆来展示基本的图像处理技巧。文章详细解释了namedWindow、Mat、circle及imshow等关键函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言在opencv上创建纯色背景图,并随机生成圆 (opencv入门)

opencv2

namedWindow(“black image”, CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);// 创建一个窗口

namedWindow函数的作用是,通过指定的名字,创建一个可以作为图像和进度条的容器窗口。含有两个参数,第一个参数为创建窗口的名字,在这里我将它命名为“black image”;第二个参数为窗口标识。
INDOW_AUTOSIZE如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小。
CV_WINDOW_FREERATIO :调整图像不管比例 相对于CV_WINDOW_KEEPRATIO:保持图像原比例。

也可以直接调用nameWindow(“black image”);第二个参数 int flag 默认为CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO|CV_GUI_EXPANDED。

Mat black_img = Mat::zeros(Size(560, 560), CV_8UC3);//黑色图像

这里需要定义一个Mat 类型的数据,类比于Matlab的语法,用来定义一个(行数,列数)矩阵,Mat::zeros代表将里面的元素都赋值为Scalar(0,0,0),相当于Mat::Mat(Size(560, 560), CV_8UC3, Scalar(0, 0, 0)),同理Mat::ones,赋值为Scalar(255,255,255),CV_8UC3为三通道。Scalar(B,G,R)。

circle(black_img, Point(xPos, yPos), 50, Scalar(0, 0, 255), 4, 8, 0);

circle函数用来画圆,xPos、yPos是我用随机数生成的横纵坐标,第二个参数代表圆心坐标,50是半径,4是粗细,8是线条类型,0代表偏移量。

imshow(“black image”, black_img);// 在窗口中显示图片

imshow用来在窗口里显示图像。

完整代码如下

int main(int argc, char *argv[])
{
// 初始化图像矩阵

namedWindow("black image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);// 创建一个窗口
while (1) {
	Mat black_img=Mat::Mat(Size(560, 560), CV_8UC3, Scalar(0, 0, 0));//黑色图像
	int xPos = rand() % 560;
	int yPos = rand() % 560;
	circle(black_img, Point(xPos, yPos), 50, Scalar(0, 0, 255), 4, 8, 0); 
	imshow("black image", black_img);// 在窗口中显示图片
	if (waitKey(500) == 'q')//每500ms生成一个圆,按Q键程序结束。
	    break;
}
waitKey(0);// 等待一次按键,程序结束

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值