栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

图像项目程序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

图像项目程序

项目程序

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

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

#include "stdafx.h"

#include "opencv2/opencv.hpp"  
#include     
#include
#include 
#include   
#include   
#include 
#include

#include 
#include 
// for fileoutput
#include 
#include 
#pragma comment(lib,"ws2_32.lib")



const int MAX_BUF_LEN = 255;

using namespace cv;
using namespace std;



//int bSums(Mat src)
//{
//
//	int counter = 0;
//	//迭代器访问像素点
//	Mat_::iterator it = src.begin();
//	Mat_::iterator itend = src.end();
//	for (; it != itend; ++it)
//	{
//		if ((*it) > 0) counter += 1;//二值化后,像素点是0或者255
//	}
//	return counter;
//}

//子函数声明
void initialization();
void MoveDetect(Mat temp, Mat frame);


//多线程声明
DWORD WINAPI ThreadProc2(LPVOID lpParameter);

#define MAX_LINE 1024   //定义txt中最大行数。可调整更改


int col_thread;
int con_thread;

char recvBuff[1024];
char buff[MAX_BUF_LEN]="9";


Mat frame, frame1, temp,diff,imgThresholded,hsv;  //定义矩阵


int main(int argc, char** argv)
{
	double v1,v2;
	ifstream infile;
	infile.open("D:\9_12image\9_12thread\thread.txt");
	if(!infile)
		cout<<"error"<>t1)
	     {
		   *p=t1;
		   p++;
	      }
	     infile.close();
	     col_thread=a[0][0];
		con_thread=a[0][1];
	


	VideoCapture video0; 
	video0.open(0);     //读入视频 
	video0.set(CV_CAP_PROP_frame_WIDTH,1600);
  video0.set(CV_CAP_PROP_frame_HEIGHT,1200);
   

	if (!video0.isOpened())  // 如果读入失败则结束
	{
		cout << "Cannot open the web cam" << endl;
		return -1;
	}
	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
	int i = 0; 

	while (1) { 
	
		video0 >> frame;//读帧进frame 
		imshow("frame9", frame);

		waitKey(30);
       
		if (i == 0)//如果为第一帧(temp还为空)  
		{
			MoveDetect(frame, frame);//子函数MoveDetect()进行运动物体检测,返回值存入result 
			i++;
		}
		else//若不是第一帧(temp有值了)  
		{
			MoveDetect(temp, frame);//子函数MoveDetect()进行运动物体检测,返回值存入result  
		}
		temp = frame.clone();
		memset(recvBuff,0,sizeof(recvBuff));

	}
	return 0;
}

void MoveDetect(Mat temp, Mat frame)

{
	int a=0;
	int b=0;
	frame1 = frame.clone();

	absdiff(temp, frame, diff);
	cvtColor(diff, hsv, CV_BGR2HSV);

	int counter;
	inRange(diff, Scalar(70, 70, 70), Scalar(180, 180, 180), imgThresholded);
	//int counter = bSums(imgThresholded);//调用函数bSums
	//counter=sum(sum(imgThresholded));
	//cout << "A:" << counter;
	//if (counter>=80) 
	counter = countNonZero(imgThresholded);
	if (counter >= 80)
	   {  
		  a=1;
		  b=1; 
       }
	if(b==1) //发送
	 {CreateThread(NULL, 0, ThreadProc2, NULL, 0, NULL);
	 b=0;
	 GetExitCodeThread(ThreadProc2, 0);
	  // CloseHandle(ThreadProc2);

	}
	if((a==1)||(atoi(recvBuff))) //发送与保存多线程
	{
		


		ofstream outfile;
	    outfile.open("D://9_12image//9_12position//9_position", ofstream::app);
		a=0; 
		SYSTEMTIME sys;
	    GetLocalTime(&sys);
	    char tmp[100];
	   // outfile << "position:" << "x="<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号