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

  • 大小: 5.81MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-09-18
  • 語言: 其他
  • 標簽: C++??黑屏檢測??

資源簡介

算法思想:隨機在給定的圖像中產(chǎn)生多個矩形區(qū)域,比較矩形區(qū)域內(nèi)圖像相似度,相似度高,則表明黑屏,否則就正常。 PS:相似度用到了余弦值。

資源截圖

代碼片段和文件信息

#include?????
#include???
#include?“BlackScreenDetect.h“?


using?namespace?std;
using?namespace?cv;


//構(gòu)造函數(shù)
BlackScreenDetect::BlackScreenDetect(String?filePath)
{
this->filePath?=?filePath;
}
//判斷矩形重疊
bool?BlackScreenDetect::isOverlap(const?Rect?&rc1?const?Rect?&rc2)
{
if?(rc1.x?+?rc1.width?>?rc2.x?&&?rc2.x?+?rc2.width?>?rc1.x?&&?rc1.y?+?rc1.height?>?rc2.y?&&?rc2.y?+?rc2.height?>?rc1.y)
return?true;
else
return?false;
}
//隨機產(chǎn)生矩形框
vectorBlackScreenDetect::excuteROIs(Mat?ROIint?ROI_number)
{
//聲明一個空的vector
vector?rects;
Rect?rect;
//產(chǎn)生隨機數(shù)
//RNG?rng;?

srand(time(NULL));?/*初始化隨機數(shù)種子*/??????//?a?=?rand()?%?(d?-?t)?+?t;?/*生成一個[td)區(qū)間內(nèi)的整數(shù)*/

int?width?=?100;//要設(shè)定的框的寬度
int?height?=?100;//要設(shè)定的框的高度
int?x;
int?y;
int?times?=?0;
while?(true)
{
times++;
//x?=?rng.uniform(0?ROI.cols);
x?=?rand()?%?(ROI.cols);?/*生成一個[td)區(qū)間內(nèi)的整數(shù)*/
//?y?=?rng.uniform(0?ROI.rows);
y?=?rand()?%?(ROI.rows);?/*生成一個[td)區(qū)間內(nèi)的整數(shù)*/
rect?=?Rect(x?y?width?height);

//首先判斷有無超出邊界
if?(x?+?width?<=?ROI.cols&&y?+?height?<=?ROI.rows)
{
if?(rects.size()?==?0)
{
//vector為空就放進去
rects.push_back(rect);
}
else
{
bool?flag?=?false;
//遍歷vector,
for?(int?i?=?0;?i? {
Rect?temp?=?rects[i];
//判斷當(dāng)前矩形是否和vector中的相交
flag?=?isOverlap(rect?temp);
if?(flag?==?true)//有相交
{
break;//跳出遍歷
}
}
//沒有相交
if?(flag?==?false)
{
//沒有相交,就添加
rects.push_back(rect);
//添加完判斷下大小
if?(rects.size()?==?ROI_number)//要截取的矩形框個數(shù)
break;//跳出while循環(huán)

}


}

}

//控制不進入無限循環(huán)
if?(times>1000000)
{
rects.clear();
return?rects;
}

}

cout?<

//畫出矩形框
for?(int?i?=?0;?i? {
cv::rectangle(ROI?rects[i]?Scalar(0?0255)?1?LINE_8?0);
}

return?rects;
}


double?BlackScreenDetect::getMinSimilarity(vector?rects?Mat?ROI)
{
Mat?ROI1;
Mat?ROI2;
if?(rects.size()?==?0)
{
cout?< return?-100;
}
double?min?=?1;//最大為1
for?(int?i?=?0;?i? {
Rect?rect1?=?rects[i];
for?(int?j?=?i?+?1;?j? {
Rect?rect2?=?rects[j];
ROI1?=?ROI(rect1);
ROI2?=?ROI(rect2);
//double?value?=?getSimilarity(ROI1?ROI2);

double?value?=?getSimilarityByCos(ROI1?ROI2);

//cout?< if?(value>0?&&?value? min?=?value;
}
}
return?min;
}
String?BlackScreenDetect::detection()
{
Mat?img?=?imread(this->filePath);

//從左上角截取提出小圖標區(qū)域
Rect?rect(0?0?cvFloor(img.cols*(0.6))?cvFloor(img.rows*(0.6)));
Mat?ROI?=?img(rect);


//獲取到多個小塊第二個參數(shù)為ROI數(shù)量
vector?rects?=?excuteROIs(ROI10);
if?(rects.size()==0)
{
return“隨機產(chǎn)生矩形失敗,請調(diào)整參數(shù)!“;
}

imshow(“ROI“?ROI);

//獲取最小相似度值
double?minValue?=?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-11?11:21??BlackScreenDetect\
?????目錄???????????0??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\
?????文件????15335424??2019-03-11?11:21??BlackScreenDetect\BlackScreenDetect.sdf
?????文件????????1351??2019-03-08?10:30??BlackScreenDetect\BlackScreenDetect.sln
?????文件???????24576??2019-03-11?11:21??BlackScreenDetect\BlackScreenDetect.v12.suo
?????文件????????4778??2019-03-11?11:12??BlackScreenDetect\BlackScreenDetect\BlackScreenDetect.cpp
?????文件????????1221??2019-03-11?09:59??BlackScreenDetect\BlackScreenDetect\BlackScreenDetect.h
?????文件????????6035??2019-03-08?16:24??BlackScreenDetect\BlackScreenDetect\BlackScreenDetect.vcxproj
?????文件????????1176??2019-03-08?16:24??BlackScreenDetect\BlackScreenDetect\BlackScreenDetect.vcxproj.filters
?????文件????????6066??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\main.cpp
?????目錄???????????0??2019-03-08?10:30??BlackScreenDetect\BlackScreenDetect\x64\
?????目錄???????????0??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\
?????目錄???????????0??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\
?????文件?????????161??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\BlackScreenDetect.lastbuildstate
?????文件????????1138??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\cl.command.1.tlog
?????文件???????44052??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\CL.read.1.tlog
?????文件????????1946??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\CL.write.1.tlog
?????文件????????1444??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\link.command.1.tlog
?????文件????????3072??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\link.read.1.tlog
?????文件?????????678??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScr.E17D35CA.tlog\link.write.1.tlog
?????文件????????1072??2019-03-11?11:07??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScreenDetect.Build.CppClean.log
?????文件????????2180??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScreenDetect.log
?????文件??????521541??2019-03-11?11:12??BlackScreenDetect\BlackScreenDetect\x64\Debug\BlackScreenDetect.obj
?????文件??????231489??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\main.obj
?????文件??????707584??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\vc120.idb
?????文件??????978944??2019-03-11?11:19??BlackScreenDetect\BlackScreenDetect\x64\Debug\vc120.pdb
?????目錄???????????0??2019-03-08?10:30??BlackScreenDetect\x64\
?????目錄???????????0??2019-03-11?11:07??BlackScreenDetect\x64\Debug\
?????文件??????126976??2019-03-11?11:19??BlackScreenDetect\x64\Debug\BlackScreenDetect.exe
?????文件?????1742128??2019-03-11?11:19??BlackScreenDetect\x64\Debug\BlackScreenDetect.ilk
?????文件?????1813504??2019-03-11?11:19??BlackScreenDetect\x64\Debug\BlackScreenDetect.pdb
............此處省略0個文件信息

評論

共有 條評論