亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? segment.cpp

?? 《數字圖像處理與分析》光盤使用說明 本光盤主要包括兩部分內容: 1、 作者編制的基于MATLAB和基于VC++實現的數字圖像處理軟件
?? CPP
字號:
#include "stdafx.h"
#include "segment.h"
#include "math.h"
//邊緣檢測
void sobel(unsigned char *imgBuf, int width, int height, int biBitCount)
{
	unsigned char *buf=new unsigned char[width*height*biBitCount];
	int i, j, k, x, y, lineByte=width*biBitCount;
	for(i=1; i<height-1;i++){
		for(j=1; j<width-1;j++){
			for(k=0;k<biBitCount; k++){
				x=*(imgBuf+(i+1)*lineByte+(j-1)*biBitCount +k)
				  +2**(imgBuf+(i)*lineByte+(j-1)*biBitCount+ k)
				  +*(imgBuf+(i-1)*lineByte+(j-1)*biBitCount+ k)
				  -*(imgBuf+(i+1)*lineByte+(j+1)*biBitCount+ k)
				  -2**(imgBuf+(i)*lineByte+(j+1)*biBitCount+ k)
				  -*(imgBuf+(i-1)*lineByte+(j+1)*biBitCount+ k);
				y=*(imgBuf+(i+1)*lineByte+(j-1)*biBitCount +k)
					+2**(imgBuf+(i+1)*lineByte+j*biBitCount +k)
					+*(imgBuf+(i+1)*lineByte+(j+1)*biBitCount +k)
					-*(imgBuf+(i-1)*lineByte+(j-1)*biBitCount +k)
					-2**(imgBuf+(i-1)*lineByte+j*biBitCount +k)
					-*(imgBuf+(i-1)*lineByte+(j+1)*biBitCount +k);
				if(sqrt(x*x+y*y)<=255)
					*(buf+i*lineByte+j*biBitCount+k)=sqrt(x*x+y*y);
				else
					*(buf+i*lineByte+j*biBitCount+k)=255;
			}
		}
	}

	for(i=0;i<lineByte*height;i++)
		*(imgBuf+i)=*(buf+i);
	delete []buf;
}

//robot
void robot(unsigned char *imgBuf, int width, int height, int biBitCount)
{
	unsigned char *buf=new unsigned char[width*height*biBitCount];
	int i, j, k, x, y, lineByte=width*biBitCount;
	int max=0;
	for(i=1; i<height-1;i++){
		for(j=1; j<width-1;j++){
			for(k=0;k<biBitCount; k++){
				x=*(imgBuf+i*lineByte+j*biBitCount +k)
				  -*(imgBuf+(i-1)*lineByte+(j+1)*biBitCount+ k);			 
				y=*(imgBuf+i*lineByte+(j+1)*biBitCount +k)
					-*(imgBuf+(i-1)*lineByte+j*biBitCount +k);
					
				if(sqrt(x*x+y*y)<=255)
					*(buf+i*lineByte+j*biBitCount+k)=sqrt(x*x+y*y);
				else
					*(buf+i*lineByte+j*biBitCount+k)=255;
				if(*(buf+i*lineByte+j*biBitCount+k)>max)
					max=*(buf+i*lineByte+j*biBitCount+k);
			}
		}
	}

	for(i=0;i<lineByte*height;i++)
		*(imgBuf+i)=*(buf+i)*255/max;
	delete []buf;
}

//prewitt
void prewitt(unsigned char *imgBuf, int width, int height, int biBitCount)
{
unsigned char *buf=new unsigned char[width*height*biBitCount];
	int i, j, k, x, y, lineByte=width*biBitCount;
	for(i=1; i<height-1;i++){
		for(j=1; j<width-1;j++){
			for(k=0;k<biBitCount; k++){
				x=*(imgBuf+(i+1)*lineByte+(j-1)*biBitCount +k)
				  +*(imgBuf+(i)*lineByte+(j-1)*biBitCount+ k)
				  +*(imgBuf+(i-1)*lineByte+(j-1)*biBitCount+ k)
				  -*(imgBuf+(i+1)*lineByte+(j+1)*biBitCount+ k)
				  -*(imgBuf+(i)*lineByte+(j+1)*biBitCount+ k)
				  -*(imgBuf+(i-1)*lineByte+(j+1)*biBitCount+ k);
				y=*(imgBuf+(i+1)*lineByte+(j-1)*biBitCount +k)
					+*(imgBuf+(i+1)*lineByte+j*biBitCount +k)
					+*(imgBuf+(i+1)*lineByte+(j+1)*biBitCount +k)
					-*(imgBuf+(i-1)*lineByte+(j-1)*biBitCount +k)
					-*(imgBuf+(i-1)*lineByte+j*biBitCount +k)
					-*(imgBuf+(i-1)*lineByte+(j+1)*biBitCount +k);
				if(sqrt(x*x+y*y)<=255)
					*(buf+i*lineByte+j*biBitCount+k)=sqrt(x*x+y*y);
				else
					*(buf+i*lineByte+j*biBitCount+k)=255;
			}
		}
	}

	for(i=0;i<lineByte*height;i++)
		*(imgBuf+i)=*(buf+i);
	delete []buf;
}

//laplacian
void laplacian(unsigned char *imgBuf, int width, int height, int biBitCount)
{
  unsigned char *buf=new unsigned char[width*height*biBitCount];
	int i, j, k, x, lineByte=width*biBitCount;
	for(i=1; i<height-1;i++){
		for(j=1; j<width-1;j++){
			for(k=0;k<biBitCount; k++){
				x=4**(imgBuf+i*lineByte+j*biBitCount +k)
				  -*(imgBuf+(i+1)*lineByte+j*biBitCount+ k)
				  -*(imgBuf+(i-1)*lineByte+j*biBitCount+ k)
				  -*(imgBuf+i*lineByte+(j+1)*biBitCount+ k)
				  -*(imgBuf+i*lineByte+(j-1)*biBitCount+ k)	;			  
				if(x>255)
					x=255;
				if(x<0)
					x=0;			
					*(buf+i*lineByte+j*biBitCount+k)=x;
			}
		}
	}

	for(i=0;i<lineByte*height;i++)
		*(imgBuf+i)=*(buf+i);
	delete []buf;
}

//閾值分割
void ErZhiSegment(unsigned char *imgBuf, int width, int height, int thresh)
{
  for(int i=0;i<width*height;i++){
    if(*(imgBuf+i)<thresh)
      *(imgBuf+i)=0;
    else
      *(imgBuf+i)=255;
  }
	
}

//大津單閾值
int Threshold(long HistBuf[256])      /* return the threshold value   */
{
        float PHS[256];
        float A,B,D,P,RH,RM,RMEAN,RI,BMAX;
        long Tab=0;
        float EPS = (float)1.0E-10;
        int Line;
        int JTHD;

        for(Line=0;Line<=255;Line++)
            Tab+=HistBuf[Line];
		if(Tab==0)
			return 0;

        for(Line=0;Line<=255;Line++)
           PHS[Line]=(float)HistBuf[Line]/Tab;

        RM=0.0;
        for(Line=0;Line<=255;Line++){
           RI=(float)Line;
           RH=RI*PHS[Line];
           RM=RM+RH;
        }
        RMEAN=RM;
        BMAX=0.0;
        P=0.0;
        A=0.0;
        for(Line=0;Line<=254;Line++){
           RH=PHS[Line];
           P=P+RH;
           A=A+(float)Line*RH;
           B=RM*P-A;
           D = P * ((float)1.0 - P);
           if(D<EPS) continue;
           B=B*B/D;
           if(B>=BMAX){
              BMAX=B;
              JTHD=Line;
           }
        }
        JTHD=(int)((float)JTHD*1.0);
        return(JTHD);
}

//用大津單閾值自動分割
void autoThreshSegment(unsigned char *imgBuf, int width, int height)
{
	int i;
	long hist[256];
	for(i=0;i<256;i++)
		hist[i]=0;
	for(i=0;i<height*width;i++)
		hist[*(imgBuf+i)]++;
	int t=Threshold(hist);
	for(i=0;i<width*height;i++){
		if(*(imgBuf+i)<t)
	    	*(imgBuf+i)=0;
		else
			*(imgBuf+i)=255;
	}
}
///濾波
//均值濾波
void meanFilter(unsigned char *imgBuf, int width, int height, int biBitCount, 
                int *mask, int masksize)
{
  unsigned char *buf=new unsigned char[width*height*biBitCount];
	int i, j, k, l, t,  x, lineByte=width*biBitCount;

  int count=0;
  for(i=0;i<masksize*masksize;i++){
    if(mask[i]==1)
      count++;
  }

	for(i=0; i<height-masksize;i++){
		for(j=0; j<width-masksize;j++){
			for(k=0;k<biBitCount; k++){
        x=0;
        for(t=0; t<masksize;t++){
          for(l=0;l<masksize;l++){
            x += mask[t*masksize+l] * *(imgBuf+(i+t)*lineByte+(j+l)*biBitCount +k);
          }
        }
					  
				*(buf+(i+masksize/2)*lineByte+(j+masksize/2)*biBitCount+k)=x/count;		
			}
		}
	}

	for(i=0;i<lineByte*height;i++)
		*(imgBuf+i)=*(buf+i);
	delete []buf;
}

//中值濾波
void midFilter(unsigned char *imgBuf, int width, int height, int biBitCount,
               int *mask, int masksize)
{
  unsigned char *buf=new unsigned char[width*height*biBitCount];
	int i, j, k, t, l, x, min, pos, count, lineByte=width*biBitCount;
  int array[49];
	for(i=0; i<height-masksize;i++){
		for(j=0; j<width-masksize;j++){
			for(k=0;k<biBitCount; k++){
        count=0;
        for(t=0;t<masksize;t++){
          for(l=0;l<masksize;l++)
            if(mask[t*masksize+l]==1){
              array[count]=*(imgBuf+(i+t)*lineByte+(j+l)*biBitCount +k);
              count++;
            }
        }
        //排序
        for(t=0;t<count-1;t++){
          min=array[t], pos=0;
          for(l=t;l<count;l++){
            if(min>array[l]){
              min=array[l];
              pos=l;
            }
          }
          if(pos!=t){
            x=array[t];
            array[t]=array[pos];
            array[pos]=x;
          }
        }
				*(buf+(i+masksize/2)*lineByte+(j+masksize/2)*biBitCount+k)=array[count/2];
				
			}
		}
	}

	for(i=0;i<lineByte*height;i++)
		*(imgBuf+i)=*(buf+i);
	delete []buf;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品婷婷国产综合久久 | 欧美精品欧美精品系列| 91在线无精精品入口| 欧美午夜精品一区二区蜜桃| 67194成人在线观看| 久久夜色精品国产噜噜av| 同产精品九九九| 国产一区二区导航在线播放| 国产1区2区3区精品美女| 久久综合网色—综合色88| 美女在线一区二区| 男男gaygay亚洲| 国产精品 日产精品 欧美精品| 国模无码大尺度一区二区三区| 国产中文字幕精品| 丰满少妇在线播放bd日韩电影| 夫妻av一区二区| 欧美系列一区二区| 日韩一区二区视频在线观看| 久久久久久日产精品| 久久国产精品一区二区| 秋霞午夜鲁丝一区二区老狼| 99re这里只有精品6| 亚洲视频中文字幕| 欧美视频一区二区三区四区| 亚洲福利视频一区二区| 日韩欧美一二三| jizzjizzjizz欧美| 午夜日韩在线电影| 欧美激情一区二区三区| 91国产视频在线观看| 久久精品99国产国产精| 中文字幕在线观看不卡| 69堂精品视频| 成人福利视频网站| 日本大胆欧美人术艺术动态| 国产精品人妖ts系列视频| 欧美三级视频在线观看| 国产一区二区三区久久悠悠色av| 一区二区成人在线视频| 国产欧美一区二区三区鸳鸯浴| 在线观看一区不卡| 国产精华液一区二区三区| 三级久久三级久久久| 国产精品久久久99| 2023国产精品自拍| 色噜噜狠狠成人中文综合| 国产一区二区调教| 日本伊人午夜精品| 亚洲成人动漫在线免费观看| 亚洲国产成人午夜在线一区| 日韩一级精品视频在线观看| 91小视频在线| 成人免费毛片高清视频| 国内久久婷婷综合| 免费在线看成人av| 亚洲成av人在线观看| 亚洲精品视频免费观看| 国产精品传媒入口麻豆| 久久久久久影视| 精品久久久网站| 日韩你懂的在线播放| 欧美群妇大交群中文字幕| 欧洲生活片亚洲生活在线观看| caoporen国产精品视频| 丁香天五香天堂综合| 国产在线精品国自产拍免费| 久久精品国产一区二区三区免费看| 亚洲成人综合网站| 亚洲成人中文在线| 丝袜国产日韩另类美女| 亚洲成人自拍网| 三级精品在线观看| 日本vs亚洲vs韩国一区三区二区 | 色先锋久久av资源部| 国产.欧美.日韩| 成人污视频在线观看| 国产成人精品免费网站| 国产激情偷乱视频一区二区三区| 狂野欧美性猛交blacked| 日本91福利区| 久久精品999| 国产在线视频精品一区| 国产风韵犹存在线视精品| 国产高清久久久久| 国产a区久久久| 91麻豆国产精品久久| 色综合色狠狠天天综合色| 色噜噜久久综合| 欧美体内she精视频| 欧美日韩亚洲丝袜制服| 717成人午夜免费福利电影| 欧美α欧美αv大片| 337p日本欧洲亚洲大胆色噜噜| 久久综合五月天婷婷伊人| 国产欧美日产一区| ...av二区三区久久精品| 一区二区三区久久| 午夜久久电影网| 国内精品伊人久久久久av一坑 | 亚洲福利视频导航| 日日骚欧美日韩| 国产呦精品一区二区三区网站| 国产精品自拍三区| 色婷婷av一区二区三区gif| 欧美日韩成人综合天天影院| 精品国产一区二区三区久久久蜜月| 久久久不卡影院| 亚洲视频网在线直播| 婷婷国产在线综合| 国产高清不卡二三区| 日本高清视频一区二区| 日韩一区二区三区高清免费看看| 欧美国产一区视频在线观看| 一区二区免费在线播放| 国产在线视视频有精品| 欧美午夜寂寞影院| 久久嫩草精品久久久久| 亚洲国产色一区| 国产成a人亚洲精| 在线播放/欧美激情| 国产精品美女一区二区三区 | 首页国产丝袜综合| www.日本不卡| 精品国产麻豆免费人成网站| 亚洲欧美色图小说| 精品夜夜嗨av一区二区三区| 色94色欧美sute亚洲线路一久| 欧美精品一区二区三区高清aⅴ| 亚洲免费av高清| 国产99久久久国产精品潘金网站| 欧美视频一区二区三区| 国产精品免费人成网站| 久久国产综合精品| 欧美高清hd18日本| 亚洲欧美日韩国产综合在线| 国产一区二区精品久久| 91精品国产综合久久久蜜臀粉嫩| 国产精品免费视频一区| 国产激情91久久精品导航| 欧美一区二区三区啪啪| 亚洲一区二区av电影| 成人ar影院免费观看视频| 久久久一区二区三区| 美女视频黄 久久| 91精品国产综合久久久蜜臀粉嫩| 亚洲欧美一区二区三区国产精品| 成人午夜视频网站| 久久亚洲欧美国产精品乐播| 免费不卡在线视频| 欧美情侣在线播放| 午夜一区二区三区在线观看| 色综合久久六月婷婷中文字幕| 中文字幕+乱码+中文字幕一区| 精品伊人久久久久7777人| 欧美一区二区三区小说| 亚洲成人第一页| 欧美挠脚心视频网站| 亚洲福利一二三区| 欧美日韩国产成人在线免费| 亚洲国产一区视频| 欧美视频完全免费看| 一区二区三区日韩在线观看| 色婷婷综合久久久| 一区二区不卡在线播放| 91福利小视频| 亚洲超碰97人人做人人爱| 欧美日韩午夜影院| 性感美女久久精品| 日韩欧美中文字幕一区| 麻豆国产精品官网| 久久蜜桃香蕉精品一区二区三区| 国产一区二三区好的| 久久精品视频一区二区| 成人丝袜18视频在线观看| 国产精品麻豆一区二区| 99国产精品久久久久久久久久 | 一区二区三区欧美视频| 欧美日韩一区二区在线观看 | 蜜桃av一区二区| 2023国产精品自拍| proumb性欧美在线观看| 一级特黄大欧美久久久| 717成人午夜免费福利电影| 久久爱另类一区二区小说| 国产三级精品三级| 91蝌蚪porny| 日本va欧美va精品发布| 国产色91在线| 日本韩国欧美一区二区三区| 视频一区免费在线观看| 久久午夜色播影院免费高清| 不卡视频一二三四| 视频一区免费在线观看| 久久精品视频在线看| 日本黄色一区二区| 久久成人免费网站| 亚洲欧美乱综合| 精品国精品自拍自在线| 一本色道久久综合亚洲精品按摩|