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

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

?? figure.cpp

?? 圖像處理源代碼VC
?? CPP
字號:
/****************************************************************************
* File name :figure.c                                                       *
* Author  : Peng Chun Ping and Ai Hao Jun                                   *
* Date    : December 24,1995                                                *
* Function: This file is an included file in p.c, in which we provide the   *
*           seven module of mathmatic Morphics' processes.                  *
* Collector:jiang **              4/96                                      *
****************************************************************************/
#include "stdafx.h"

#include <math.h>
#include <stdlib.h>

#define Bright 255
#define Dark 0
#define Green 32


#define TempleteValue 1
int TempleteSize=7;
#define TempleteValue1 1
#define TempleteValue2 2

#include "comapi.h"

/*************      fspace_2d    ***************************************/
/*  To allocation a 2_dimension dynamic array  */
//void **fspace_2d(int row,int col,int lenth);
/*******************************  ffree_2d   ****************************/
/*  To free a 2_dimension dynamic array  */
//void ffree_2d(void **a,int row);


/* bivalue the image */
void bivalue(unsigned char **array,int row,int col)
{
  int r,c;
  for(r=0;r<row;r++)
  for(c=0;c<col;c++)
  {
    if(array[r][c]!=0)
      array[r][c]=255;
  }
  return;
}


void Expand(unsigned char **Image,  unsigned char **BufferImage,
				unsigned char Templete[7][7], int row,int col)
{
//  unsigned char **BufferImage;
  int r,c,i,j;
/* create the buffer image */
//  BufferImage=(unsigned char **)fspace_2d(row,col,sizeof(unsigned char));
//  for(r=0;r<row;r++)
//  for(c=0;c<col;c++)
//   BufferImage[r][c]=0;
/* expand the image and put the result in buffer image */
  for(r=TempleteSize/2;r<row-TempleteSize/2;r++)
  for(c=TempleteSize/2;c<col-TempleteSize/2;c++)
//      if(*(*(Image+r)+c)!=Dark){
    if(Image[r][c]!=Dark){
	   for(i=0;i<TempleteSize;i++)
		for(j=0;j<TempleteSize;j++){
	     if(Templete[i][j]==TempleteValue)
	       BufferImage[i+r-TempleteSize/2][c+j-TempleteSize/2]=Bright;
      }
/*	    else
	    *(*(BufferImage+i+r-TempleteSize/2)+c+j-TempleteSize/2)
	    =*(*(Image+i+r-TempleteSize/2)+c+j-TempleteSize/2);*/
    }

//    for(r=TempleteSize/2;r<row-TempleteSize/2;r++)
//    for(c=TempleteSize/2;c<col-TempleteSize/2;c++)
//    {
///*      if(*(*(Image+r)+c)==Dark&&BufferImage[r][c]!=Dark)
//      *(*(Image+r)+c)=Green;
//      else*/
//      Image[r][c]=*(*(BufferImage+r)+c);
//      }
//  ffree_2d((void **)BufferImage,row);/* release the buffer image */
//  return ;
}
/* reflect the templete */
void Reflect(unsigned char Templete[7][7])
{
  int r,c;
  int TempleteSize=7;
  unsigned char **temp;
  /* create temporary memory for templete */
  temp=(unsigned char **)fspace_2d(TempleteSize,TempleteSize,1);
  for(r=0;r<TempleteSize;r++)
  for(c=0;c<TempleteSize;c++)
  temp[r][c]=0;
  for(r=0;r<TempleteSize;r++)
  for(c=0;c<TempleteSize;c++)
	 temp[r][c]=Templete[TempleteSize-1-r][TempleteSize-1-c];
  for(r=0;r<TempleteSize;r++)
  for(c=0;c<TempleteSize;c++)
	 Templete[r][c]=temp[r][c];
  ffree_2d((void **)temp,TempleteSize);/* release the temporary memory */
  return ;
}
/* put the image into contray value */
void Contrary(unsigned char **Image,int row,int col)
{
  int r,c;
  for(r=0;r<row;r++)
  for(c=0;c<col;c++){
    if(Image[r][c]==Dark)
	   Image[r][c]=Bright;
	 else
      Image[r][c]=Dark;
  }
}

/* rot the image */
void Rot(unsigned char **Image,  unsigned char **OutImage,
				unsigned char Templete[7][7], int row,int col )
{
//  int r,c;
  unsigned char **temp;
  temp=(unsigned char **)fspace_2d(row,col,1);
  for(int i=0;i<row;i++)
  for(int j=0;j</*/row/*/col;j++)
    temp[i][j]=Image[i][j];

  Contrary(temp,row,col);/* put the image into contray value */
  Reflect(Templete);/* reflect the templete */
  Expand(temp,OutImage,Templete,row,col);/* expand the image */
  bivalue(OutImage,row,col);
  Contrary(OutImage,row,col);/* put the image into contray value */
  ffree_2d((void **)temp,row);/* release the buffer image */
}

void Open(unsigned char **Image,  unsigned char **OutImage,
				unsigned char Templete[7][7], int row,int col)
{
/* create the buffer image */
  unsigned char **BufferImage;
  BufferImage=(unsigned char **)fspace_2d(row,col,sizeof(unsigned char));

  Rot(Image,BufferImage,Templete,row,col);/* rot the image */
  Expand(BufferImage,OutImage,Templete,row,col);/* expand the image */
  bivalue(OutImage,row,col);

  ffree_2d((void **)BufferImage,row);/* release the buffer image */
}

void Close(unsigned char **Image,  unsigned char **OutImage,
				unsigned char Templete[7][7], int row,int col)
{
  unsigned char **BufferImage;
  BufferImage=(unsigned char **)fspace_2d(row,col,sizeof(unsigned char));

  Expand(Image,BufferImage,Templete,row,col);/* expand the image */
  bivalue(BufferImage,row,col);
  Rot(BufferImage,OutImage,Templete,row,col);/* rot the image */

  ffree_2d((void **)BufferImage,row);/* release the buffer image */
}

void Hit(unsigned char **Image,  unsigned char **OutImage,
			unsigned char Templete[7][7], int row,int col)
{
  unsigned char Templete1[7][7],Templete2[7][7];
  unsigned char **BufferImage;
  int r,c;

  /* assign value to the separate templete */
//  Templete1=(unsigned char **)fspace_2d(TempleteSize,TempleteSize,sizeof(unsigned char));
//  Templete2=(unsigned char **)fspace_2d(TempleteSize,TempleteSize,sizeof(unsigned char));

  for(r=0;r<TempleteSize;r++)
  for(c=0;c<TempleteSize;c++)
    if(Templete[r][c]==TempleteValue1)
	   Templete1[r][c]=TempleteValue;
    else if(Templete[r][c]==TempleteValue2)
	   Templete2[r][c]=TempleteValue;
    else{
	   Templete1[r][c]=0;
	   Templete2[r][c]=0;
	 }

  /* create the buffer image */
  BufferImage=(unsigned char **)fspace_2d(row,col,sizeof(unsigned char));

/*  for(r=0;r<row;r++)
  for(c=0;c<col;c++)
	 *(*(BufferImage+r)+c)=*(*(Image+r)+c);
*/

  Rot(Image,BufferImage,Templete1,row,col); /* rot the image with No.1 templete */
  Reflect(Templete2);/* reflect the No.2 templete */
  Expand(BufferImage,OutImage,Templete2,row,col);/* expand the buffer image */
  bivalue(OutImage,row,col);/* bivalue the image */

  for(r=0;r<row;r++)/* substract the buffer image out of image */
  for(c=0;c<col;c++){
    if(Image[r][c]==BufferImage[r][c]&&Image[r][c]!=Dark)
       OutImage[r][c]=Dark;
    }
/* release the meory */
  ffree_2d((void **)BufferImage,row);
//  ffree_2d((void **)Templete1,TempleteSize);
//  ffree_2d((void **)Templete2,TempleteSize);
}

/* slim the image */
void Slim(unsigned char **Image,  unsigned char **OutImage,
			 unsigned char Templete[7][7], int row,int col)
{
  int r,c;
/* hit the Original image */
  Hit(Image,OutImage,Templete,row,col);

/* substract the hit image from original image */
  for(r=0;r<row;r++)
  for(c=0;c<col;c++)
     if(OutImage[r][c]==Image[r][c])
		 OutImage[r][c]=Dark;
}

void Fat(unsigned char **Image,  unsigned char **OutImage,
    		 unsigned char Templete[7][7], int row,int col)
{
  int r,c;
/* hit the Original image */
  Hit(Image,OutImage,Templete,row,col);

/* add the hit image to original image */
  for(r=0;r<row;r++)
  for(c=0;c<col;c++)
	  if(OutImage[r][c]!=0 && Image[r][c]==0)
       ;    
     else
		 OutImage[r][c]=Image[r][c];
}

/********************END OF FIGURE.C*************************************/






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清精品在线| 国产成人夜色高潮福利影视| 亚洲精品自拍动漫在线| 国产精品天美传媒| 欧美激情中文不卡| 国产精品视频一二| 成人免费在线视频观看| ●精品国产综合乱码久久久久| 国产视频一区不卡| 国产精品麻豆一区二区| 国产精品久久99| 国产精品―色哟哟| 一区视频在线播放| 伊人开心综合网| 亚洲欧美一区二区三区国产精品 | 麻豆高清免费国产一区| 青青草97国产精品免费观看无弹窗版| 日韩成人一级片| 久久97超碰色| 欧美精品在欧美一区二区少妇| 欧美一区二区视频在线观看| 日韩欧美国产一区二区在线播放| 久久夜色精品国产噜噜av| 国产片一区二区| 亚洲欧美电影一区二区| 亚洲v中文字幕| 久久国产免费看| 懂色av中文字幕一区二区三区| 91香蕉视频污| 欧美精品电影在线播放| 久久综合九色综合久久久精品综合| 中文字幕av免费专区久久| 一区二区三区**美女毛片| 日韩高清不卡一区二区三区| 国产一区在线观看视频| eeuss鲁片一区二区三区在线看| 在线观看91视频| 欧美电影免费观看高清完整版在线观看| 久久精品男人的天堂| 亚洲日本中文字幕区| 天堂一区二区在线| 国产盗摄精品一区二区三区在线| 一本大道久久a久久综合婷婷| 91精品婷婷国产综合久久| 亚洲国产经典视频| 午夜伊人狠狠久久| 粉嫩绯色av一区二区在线观看 | 久久久不卡网国产精品一区| 亚洲日本在线看| 裸体一区二区三区| 91国偷自产一区二区开放时间| 欧美一区二区在线观看| 国产精品美女www爽爽爽| 三级影片在线观看欧美日韩一区二区| 国产高清精品在线| 欧美精品 日韩| 最新中文字幕一区二区三区| 日韩成人dvd| 91免费看片在线观看| 精品久久一区二区三区| 亚洲精品乱码久久久久| 激情综合一区二区三区| 欧美性猛交xxxxxx富婆| 久久综合国产精品| 91在线观看污| www国产精品av| 午夜精品福利久久久| 波多野结衣欧美| 26uuuu精品一区二区| 亚洲国产成人高清精品| 成人aa视频在线观看| 精品国产免费人成在线观看| 亚洲国产精品视频| 成人福利视频网站| 久久美女高清视频| 奇米一区二区三区| 91国偷自产一区二区三区成为亚洲经典 | 久久久久久久久久久久电影| 午夜精品久久久久久久蜜桃app| 99国产精品99久久久久久| 国产亚洲综合av| 久久99久久久久| 欧美顶级少妇做爰| 亚洲午夜免费电影| av一区二区不卡| 国产日韩欧美高清| 国产乱淫av一区二区三区| 日韩一级二级三级精品视频| 亚洲一区二区三区小说| 色诱视频网站一区| 国产精品入口麻豆原神| 国产99久久久国产精品| 久久综合九色综合97_久久久| 免费亚洲电影在线| 欧美日本在线观看| 亚洲一区免费在线观看| 色综合天天天天做夜夜夜夜做| 国产精品久久久久久久久免费相片 | 日本大胆欧美人术艺术动态| 51午夜精品国产| 男人的天堂亚洲一区| 91精品国产综合久久久蜜臀粉嫩| www.视频一区| 国产精品三级电影| 97aⅴ精品视频一二三区| 国产精品无码永久免费888| 福利一区二区在线观看| 国产欧美一区二区三区网站 | 国产午夜精品久久久久久免费视 | 黑人精品欧美一区二区蜜桃| 日韩网站在线看片你懂的| 秋霞电影一区二区| 日韩欧美一区二区在线视频| 美腿丝袜亚洲三区| 久久久99精品免费观看不卡| 国产精品一区二区x88av| 久久久久久久久岛国免费| 国产成人av一区二区| 日本一区二区免费在线| 成年人网站91| 伊人色综合久久天天| 欧美日本韩国一区二区三区视频| 首页亚洲欧美制服丝腿| 欧美一区二区三区电影| 寂寞少妇一区二区三区| 中文字幕欧美激情一区| 91福利视频网站| 日本欧美一区二区| 国产欧美一区二区精品秋霞影院| 99精品欧美一区二区蜜桃免费| 一区二区三区在线免费视频| 91精品国产综合久久久久| 国产又粗又猛又爽又黄91精品| 中文字幕乱码一区二区免费| 在线日韩国产精品| 免费成人小视频| 国产日韩欧美一区二区三区乱码| 色婷婷综合在线| 日本va欧美va欧美va精品| 中文字幕久久午夜不卡| 欧美日韩一区二区不卡| 激情五月激情综合网| 亚洲欧洲综合另类| 日韩一区二区三区四区| 成人免费看的视频| 亚洲第一会所有码转帖| 国产亚洲成av人在线观看导航| 色噜噜狠狠色综合欧洲selulu| 日韩福利电影在线观看| 国产精品嫩草影院av蜜臀| 欧美日韩精品电影| 成人午夜私人影院| 日韩av一级电影| 中文字幕在线观看不卡| 91精品国产乱| 色综合亚洲欧洲| 国产一区在线视频| 日本高清不卡aⅴ免费网站| 日本不卡一区二区三区高清视频| 国产精品久久久久婷婷二区次| 欧美一区二区播放| 99热精品国产| 精品一区二区三区在线观看 | av一二三不卡影片| 老司机精品视频一区二区三区| 亚洲色图欧美偷拍| 精品对白一区国产伦| 在线观看不卡视频| 成人一区二区三区视频在线观看| 图片区小说区国产精品视频| 国产精品二三区| 久久综合99re88久久爱| 欧美一区二区三区在线电影| 97se亚洲国产综合自在线| 国产一区二区精品久久91| 亚洲成人午夜影院| 亚洲视频在线观看一区| 精品国产髙清在线看国产毛片| 欧美揉bbbbb揉bbbbb| 91一区在线观看| 懂色一区二区三区免费观看| 精品一区二区久久久| 性做久久久久久免费观看| 日韩伦理免费电影| 国产精品久久福利| 国产日产欧美一区二区三区 | 午夜欧美一区二区三区在线播放| 成人欧美一区二区三区小说 | 国产成人一级电影| 久久精品理论片| 日本vs亚洲vs韩国一区三区二区 | 欧美日韩一区在线观看| 99精品热视频| 成人av午夜电影| 成人做爰69片免费看网站| 国产高清无密码一区二区三区| 国产一区二区主播在线| 久久成人免费网| 狠狠色综合播放一区二区| 精品无码三级在线观看视频|