使用opencv模拟雷达扫描显示

使用opencv模拟雷达扫描显示,扫描到的目标点,由rand函数随机产生,最终用于显示,目标识别后,显示目标。

实现工程代码:https://download.csdn.net/download/u010440456/11999373

 

很多需要图片的同学,我已经上传了,以后就不一一发了。自己下载去。

图片地址:https://download.csdn.net/download/u010440456/12499917

 

// VectorPoint.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<opencv2/opencv.hpp>
#include<iostream>
#include"stdio.h"
#include<stdlib.h>
#include<windows.h>
#define random(x) (rand()%x)

using namespace std;
using namespace cv;




class MvTimer
{
public:
	MvTimer() { QueryPerformanceFrequency(&Freq); restart(); }
	void restart() { QueryPerformanceCounter(&Count1); }
	float time() { QueryPerformanceCounter(&Count2); return (float)((Count2.QuadPart - Count1.QuadPart) / (double)Freq.QuadPart * 1000.0f); }
private:
	LARGE_INTEGER Count1, Count2, Freq;
};

//void CBasicDlg::object_location(cv::Mat mat_img, std::vector<bbox_t> result_vec, cv::Mat *mat_imgout)    //视场角为5°,雷达图像分辨率1000*1000
//object_location(newframe1, result_vec, &copyRadar);
int main()
{
	Mat mat_img = imread("test.bmp");
	Mat radar = imread("radar.png");
	cv::Point center;
	double theta, beta, rho;
	center.x = mat_img.cols / 2;
	center.y = mat_img.rows / 2;	
	vector<vector<Point>> circlecenter(72);


	int num = 10;
	while (num--)
	{
		MvTimer t;  		  
		for (int index = 0; index < 72; index++)	//index属于0-71
		{			
			Mat mat_imgcopy = radar.clone();
			t.restart();
			Mat *mat_imgout = &mat_imgcopy;			
			theta = 3.1415926 * (2 * center.x - mat_img.cols + 2 * mat_img.cols * index) / (72 * mat_img.cols);
			circlecenter[index].clear();
			for (int t = 0; t < random(5); t++)
			{
				center.y = random(250);
				rho = 0.31 * (*mat_imgout).rows - (0.12 * (*mat_imgout).rows * center.y) / mat_img.rows;				
				float x = (*mat_imgout).cols / 2 + rho*sin(theta);
				float y = (*mat_imgout).rows / 2 - rho*cos(theta);
				circlecenter[index].push_back(Point(x, y));		
			}

			for (int i = 0; i < 72; i++)
			{
				for (int j = 0; j< circlecenter[i].size(); j++)
				{
					circle(*mat_imgout, circlecenter[i][j], 10, Scalar(0, 0, 255), -1, 8, 1);  //在Mat类型上画圆
				}
			}

			//显示雷达扫描指示直线
			double beta, beta0;
			//	int rhomax = 1125;
			double rhomax = (*mat_imgout).cols / 2.67;
			beta = 3.1415926 * index / 36;
			beta0 = beta - 1.134;
			Point start, end, end0;
			start.x = (*mat_imgout).cols / 2;
			start.y = (*mat_imgout).rows / 2;
			end.x = start.x + rhomax * sin(beta);
			end.y = start.y - rhomax * cos(beta);
			end0.x = start.x + rhomax * sin(beta0);
			end0.y = start.y - rhomax * cos(beta0);
			//line(*mat_imgout, start, end0, Scalar(0, 255, 0), 3);
			line(*mat_imgout, start, end, Scalar(0, 255, 0), 3);
			cout << t.time() << endl;
			imshow("test", *mat_imgout);			
			waitKey(100);
		}		
	}	
	return 0;
}

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
使用Java语言调用OpenCV库实现微信扫描二维码引擎功能的步骤如下: 首先,确保已经安装了Java开发环境和OpenCV库。 1. 导入所需的Java库和OpenCV库: 在Java项目中,我们需要导入相应的Java库和OpenCV库。可以使用构建工具如Maven或Gradle来导入这些库。 2. 加载OpenCV库: 在Java代码中,需要调用OpenCV库的功能之前,需要先加载OpenCV库。可以使用`System.loadLibrary()`方法来加载OpenCV核心库。 3. 打开摄像头并捕获像: 在Java中,可以使用OpenCV的`VideoCapture`类来打开摄像头,并通过`read()`方法捕获像。 4. 对捕获到的像进行处理: 使用OpenCV提供的像处理功能,可以对捕获到的像进行二维码识别的预处理,如去噪、像增强等。 5. 进行二维码识别: 使用OpenCV提供的二维码识别功能,可以对预处理后的像进行二维码识别。可以调用相应的方法来进行识别,并获取二维码的信息。 6. 使用微信API进行扫码确认: 如果需要将二维码的信息传递到微信进行扫码确认,可以调用微信提供的API,将识别到的二维码信息传递给微信进行验证。 7. 处理识别结果: 根据微信返回的结果,可以进行相应的处理。例如,可以根据识别结果进行跳转、处理业务逻辑等。 以上是使用Java和OpenCV调用微信扫描二维码引擎的基本步骤。通过使用OpenCV库的像处理功能和二维码识别功能,结合微信提供的API,可以实现二维码的扫描和处理。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值