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

  • 大小: 22KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: C/C++
  • 標簽: 條形碼??

資源簡介

c語言 條形碼識別

資源截圖

代碼片段和文件信息

//author:?lili
//date:???2011-01-16


#include?
#include?
#include?“prog.h“
#include
#include
#include
#include?
#include?
#include
#include

//#define?C_H?ysize/3
char?filename[]=“../../picture2/picture142“;




int?round(double?adouble?b)//不能調用標準庫里面的函數,用同名函數代替
{
double?j=a/b;
int?i=0;
i=(int)a/b;
if((j-0.5) else?return?(i+1);
}



int?Histgram(BYTE?*imageint?lineByteint?ysizeint?biBitCount)//long?hist[256])
{
//COLORREF?pixel;
//BYTE?rgbavg;
int?sum=0;
int?Hist_smooth(int?minint?max);

/*
if(biBitCount==8){
for?(int?y=0;?y<256;?y++)?
{
for?(int?x=0;?x {
//pixel?=?img_Ori.GetPixel;
r?=?pColorTable[y].rgbRed;
g?=?pColorTable[y].rgbGreen;
b?=?pColorTable[y].rgbBlue;
avg?=?((r?+?g?+?b)/3);
sum+=avg;
}
}
sum=sum/(lineByte*ysize);
}
else?{*/
int?ijn;

//for?(n?=0;n?<256;n++)hist[n]=0;
for?(j?=0;j {
for(i=0;i n=*(image+j*lineByte+i);
//printf(“%7d??“n);
hist[n]++;
}
//printf(“\n“);
}
/*

for(int?nn=0;nn<256;nn++){
printf(“%3d:%7d??\n“nnhist[nn]);
}*/
//這里做一個直方圖平滑化,有利于獲得閾值

int?yuzhi1=Hist_smooth(MINMAX);
int?yuzhi2=Hist_smooth(MAXMIN);

//printf(“閾值1=%d\n“yuzhi1);
//printf(“閾值2=%d\n“yuzhi2);
int?yuzhi=0;
yuzhi=(yuzhi1+yuzhi2)/2;
//yuzhi=yuzhi1;

/*
int?mm=0;
int?m=0;
for(n=0;n<256;n++){
printf(“%d:“n);
//m=hist[n]/1000;
//for(mm=0;mm printf(“%d“hist[n]);
printf(“\n“);
//if(hist[n]<=hist[n-1]&&hist[n]<=hist[n+1]){sum=n;break;}
}
if(n==256)sum=256/3;
//}*/

return(yuzhi);
}

//直方圖平滑化后,直接讀取閾值!

int?Hist_smooth(int?minint?max)
{
int?mni;
long?sum;
//用于判斷是否滿足閾值條件的函數
int?panduanhanshu(int?val);
int?hist_new[256]={0};
for(n=0;n<256;n++){
sum=0;
for(m=-2;m<=2;m++)
{
i=n+m;
if(i<0)i=0;
if(i>255)i=255;
sum=sum+hist[i];
}
hist_new[n]=(int)((float)sum/5.0+0.5);
}
for(n=0;n<256;n++)
{
hist[n]=hist_new[n];//第二次平滑化的時候可以用~~
//printf(“%3d:%d\n“nhist_new[n]);
}
//printf(“\n“);
//試一下找比左右五個連續小的值,看看和自己定的閾值差距多大
int?yuzhi=0;
if(max for(n=min;n>max;n--)
if(panduanhanshu(n)){
return?n;
}
}
else?{
for(n=min;n {
//if(hist_new[n]<=hist_new[n-1]&&hist_new[n]<=hist_new[n+1])
if(panduanhanshu(n))
{
return?n;
//yuzhi=n;
//在看看此值是不是滿足小于前后十個值,來判斷是不是滿足閾值條件
//因為找到的是最早的滿足值,所以整體肯定偏小,然后經過一定系數的擴大,在返回
//int?tiaojianzhi=0;
//tiaojianzhi=panduanhanshu(n);
//if(tiaojianzhi==1){
//printf(“閾值:%d\n“n+10);
//if(n<=55)return(n+35);
//else?if(n>55&&n<60)return?(n+23);
//else?if(n>=60&&n<=70)return?(n+20);
//else?return?(n+10);
//}
}
}
}
return?(100);
}

//判斷條件滿足,返回1,否則返回0
int?panduanh

評論

共有 條評論