資源簡介
利用opencv進行圖片馬賽克檢測,并以視頻序列幀進行實驗,檢測結果非常精確。
代碼片段和文件信息
//下一步滿足實時要求
#include?
#include?
#include?
#include?
using?namespace?std;
void?cal_cubesnumber(int?x);
//bool?cubeornot(int?pint?qint?z);
int?Pixel[2000][2000]={1};
int?Tongji[40][2]={0};
#define?length?10
void?main()
{
int?startend;
start=clock();
IplImage?*sr?=?NULL;
IplImage?*canny?=?NULL;
double?low_thresh=40.0;
double?hig_thresh=200.0;
char?name[length];
for(int?i=1;i {
//int?i=10;
sprintf(name“%d.jpg“i);
string?fname=name;
sr=cvLoadImage(fname.c_str());
if(sr!=0)
{
canny=cvCreateImage(cvGetSize(sr)IPL_DEPTH_8U0);
cvCanny(srcannylow_threshhig_thresh3);
cvSaveImage(“Canny.jpg“canny);
cal_cubesnumber(i);
cvReleaseImage(&sr);
cvReleaseImage(&canny);
}
}
end=clock();
double?totaltime=(double)(end-start)/CLOCKS_PER_SEC;
cout< getchar();
}
void?cal_cubesnumber(int?xx)
{
int?Tongji[40][2]={0};
IplImage?*m=cvLoadImage(“Canny.jpg“1);
int?height=(*m).height;
int?width=(*m).width;
//bool?mark;
IplImage?*m1;
m1=cvCreateImage(cvGetSize(m)IPL_DEPTH_8U1);
cvCvtColor(mm1CV_BGR2GRAY);
//cvSaveImage(“Gray.jpg“m1);
/*ofstream?outfile(“Pixel.txt“ios::ate);
if(!outfile)
{
cout<<“Can‘t?open.“;
exit(0);
}
IplImage?*Huizhi;
Huizhi=cvCreateImage(cvGetSize(m1)IPL_DEPTH_8U1);*/
for(int?x=0;x {
uchar?*ptr=(uchar?*)m1->imageData+x*m1->widthStep;
for(int?y=0;y {
int?intensity=ptr[y];
if(intensity>200)
{
Pixel[y][x]=0;
//cvRectangle(HuizhicvPoint(yx)cvPoint(yx)CV_RGB(25500));
//outfile<<“0“;
}
else
{
Pixel[y][x]=1;
//outfile<<“1“;
}
}
//outfile<<“\n“;
}
//outfile.close();
//cvSaveImage(“mark.jpg“Huizhi);
for(int?a=4;a<(*m1).width-4;a++)
for(int?bc=3;bc<33;bc++)
{
for(int?b=4;b<(*m1).height-4;b++)
{
//mark=cubeornot(abcb);
if(?/*
Pixel[a][b+(int)bc/2]==0&&
Pixel[a+bc-1][b+(int)bc/2]==0&&
Pixel[a+(int)bc/2][b]==0&&
Pixel[a+(int)bc/2][b+bc-1]==0&&
*/
Pixel[a][b]==0&&Pixel[a][b+1]==0
&&Pixel[a+bc-2][b-1]==0&&Pixel[a+bc-1][b-1]==0
&&Pixel[a+1][b+bc-2]==0&&Pixel[a+2][b+bc-2]==0
&&Pixel[a+bc-1][b+bc-3]==0&&Pixel[a+bc-1][b+bc-4]==0
)?????????????//正方形判斷
{
Tongji[bc][0]=bc;
Tongji[bc][1]++;
Pixel[a][b]=1;
}
}
if(Tongji[bc][1]>=15)
{
cout< goto?A;
}
}
/*cout< for(int?x=3;x<40;x++)
{
if(Tongji[x][1]!=0)
{
cout<<“Length:“;
cout< cout<<“\t“;
cout<<“Number:“;
cout< cout<<“\t“;
cout<<“\n“;
???
//cout< //break;
}
}*/
//cout<
//getchar();
A: cvReleaseImage(&m);
cvReleaseImage(&m1);
remove(“Canny.jpg“);
remove(“Gray.jpg
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???19257856??2015-11-09?14:10??Masaike_Detection\Debug\Masaike_Detection.exe
?????文件?????777952??2015-11-09?14:10??Masaike_Detection\Debug\Masaike_Detection.ilk
?????文件????1600512??2015-11-09?14:10??Masaike_Detection\Debug\Masaike_Detection.pdb
?????文件???57016320??2015-11-09?14:33??Masaike_Detection\ipch\masaike_detection-52b3db26\masaike_detection-bbab2cc5.ipch
?????文件?????437110??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\1.jpg
?????文件?????353148??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\10.jpg
?????文件?????452227??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\2.jpg
?????文件?????471168??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\3.jpg
?????文件?????360696??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\4.jpg
?????文件?????339562??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\5.jpg
?????文件?????337297??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\6.jpg
?????文件?????446593??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\7.jpg
?????文件?????476837??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\8.jpg
?????文件?????672104??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\9.jpg
?????文件??????76235??2015-11-09?14:11??Masaike_Detection\Masaike_Detection\Canny.jpg
?????文件?????437110??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\1.jpg
?????文件?????353148??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\10.jpg
?????文件?????452227??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\2.jpg
?????文件?????471168??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\3.jpg
?????文件?????360696??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\4.jpg
?????文件?????339562??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\5.jpg
?????文件?????337297??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\6.jpg
?????文件?????446593??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\7.jpg
?????文件?????476837??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\8.jpg
?????文件?????672104??2015-09-24?14:21??Masaike_Detection\Masaike_Detection\ceshi\9.jpg
?????文件??????12632??2015-09-25?15:16??Masaike_Detection\Masaike_Detection\ceshi2\0.jpg
?????文件??????24503??2015-09-25?15:16??Masaike_Detection\Masaike_Detection\ceshi2\1.jpg
?????文件??????14657??2015-09-25?15:16??Masaike_Detection\Masaike_Detection\ceshi2\10.jpg
?????文件??????12659??2015-09-25?15:16??Masaike_Detection\Masaike_Detection\ceshi2\11.jpg
?????文件??????11654??2015-09-25?15:16??Masaike_Detection\Masaike_Detection\ceshi2\12.jpg
............此處省略183個文件信息
評論
共有 條評論