91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .cpp
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-17
  • 語言: C/C++
  • 標簽: 圖像處理??

資源簡介

C++ 和opencv 利用多線程的方法實現圖像的識別檢測模板程序,速度大大提升。有利于工程應用和學習

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include
#include“putTextZh\putText.h“
using?namespace?std;
using?namespace?cv;
int?key?=?0;//捕獲的鍵盤輸入
int?Threshold?=?120;?//?二值化的閾值
int?Mouse_x?=?0;//鼠標當前位置xy
int?Mouse_y?=?0;
int?MouseState?=?-1;//鼠標狀態。

const?string??MainWindow?=?“白酒檢測系統“;
const?string??Tracker?=?“二值化閾值“;
int?height?=?480?width?=?640;
//顏色表?https://blog.csdn.net/kc58236582/article/details/50563958?//??注意Scalar是?BGR順序
Scalar?yellow?=?Scalar(0?255?255);
Scalar?red?=?Scalar(0?0?255);
Scalar?white?=?Scalar(255?255?255);
Scalar?black?=?Scalar(0?0?0);
Scalar?green?=?Scalar(0?255?0);


DWORD?WINAPI?ThreadFunction1(LPVOID?lpParameter);
DWORD?WINAPI?ThreadFunction2(LPVOID?lpParameter);
Mat?Interface(Mat?Input);//界面所在
void?on_mouse(int?event?int?x?int?y?int?void?*);??//獲取鼠標位置
void?on_TrackerbarBW(int?threshold?void?*){}//條碼作用

Mat?ImageT1In?=?Mat::zeros(height?width?CV_8UC3);//線程1的輸入圖像
Mat?ImageT1Out?=?Mat::zeros(height?width?CV_8UC3);//線程1的輸出圖像
Mat?ImageT2Out?=?Mat::zeros(height?width?CV_8UC3);//線程2的輸出圖像
Mat?ImageT2In?=?Mat::zeros(height?width?CV_8UC3);//線程1的輸入圖像
Mat?ImageToshow?=?Mat::zeros(height?*?2?width?*?2.5?CV_8UC3);//被顯示的圖像

int?main()
{
HANDLE?handle1?handle2;
handle1?=?CreateThread(NULL?0?ThreadFunction1?NULL?0?NULL);
handle2?=?CreateThread(NULL?0?ThreadFunction2?NULL?0?NULL);
if?(NULL?==?handle1)
{
cout?< return?-1;
}
if?(NULL?==?handle2)
{
cout?< return?-1;
}

CloseHandle(handle1);
CloseHandle(handle2);//創建完之后關閉線程
cout?< VideoCapture?cap;
cap.open(0);?//打開視頻以上兩句等價于VideoCapture?cap(“E://2.avi“);

if?(!cap.isOpened())//如果視頻不能正常打開則返回
return?-1;
Mat?frame;
namedWindow(MainWindow?CV_WINDOW_NORMAL);
cv::setWindowProperty(MainWindow?CV_WND_PROP_FULLSCREEN?CV_WINDOW_FULLSCREEN);//主界面設置全屏
cv::setMouseCallback(MainWindow?on_mouse);//鼠標回調函數
cv::createTrackbar(Tracker?MainWindow?&Threshold?255?on_TrackerbarBW);//控制條barname?winname?&sidlervalue?g_max?ontracker
??//on_TrackerbarB

while?(1)
{ //cout?<
ImageToshow?=?Mat::zeros(height?*?2?width?*?2.5?CV_8UC3);//被顯示的圖像
cap?>>?frame;//等價于cap.read(frame);
frame.copyTo(ImageT1In);
frame.copyTo(ImageT2In);
if?(frame.empty())//如果某幀為空則退出循環
break;
//int?threshold?=?cv::getTrackbarPos(“Track1“?“img“);//tracker?bar
Mat?gray;
cvtColor(ImageT2In?gray?COLOR_BGR2GRAY);
cv::Mat?BW?=?gray? cvtColor(BW?BW?COLOR_GRAY2BGR);
?
Rect?rectT1?rectT2?rectT3??rectT4;
rectT1.x?=?0; rectT1.y?=?0; rectT1.width?=?width; rectT1.height?=?height;
rectT2.x?=?0; rectT2.y?=?height; rectT2.width?=?width; rectT2.height?=?height;
rec

評論

共有 條評論

相關資源