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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wavelet_atrous.cpp

?? this a image processing program
?? CPP
字號:
/*---------------------------------------------------------------------------------------  File        : wavelet_atrous.cpp  Description : Performs a 2D or 3D 'a trous' wavelet transform                 (using a cubic spline) on an image or a video sequence.  Reference :   Starck, J.-L., Murtagh, F. and Bijaoui, A.,                Image Processing and Data Analysis: The Multiscale Approach,                Cambridge University Press, 1998.               (Hardback and softback, ISBN 0-521-59084-1 and 0-521-59914-8.)  Author      : Renaud P閠eri  - Renaud.Peteri '@' mines-paris.org  Institution : CWI, Amsterdam  Date        : February 2005    This software is governed by the CeCILL  license under French law and  abiding by the rules of distribution of free software.  You can  use,   modify and/ or redistribute the software under the terms of the CeCILL  license as circulated by CEA, CNRS and INRIA at the following URL  "http://www.cecill.info".     As a counterpart to the access to the source code and  rights to copy,  modify and redistribute granted by the license, users are provided only  with a limited warranty  and the software's author,  the holder of the  economic rights,  and the successive licensors  have only  limited  liability.     In this respect, the user's attention is drawn to the risks associated  with loading,  using,  modifying and/or developing or reproducing the  software by the user in light of its specific status of free software,  that may mean  that it is complicated to manipulate,  and  that  also  therefore means  that it is reserved for developers  and  experienced  professionals having in-depth computer knowledge. Users are therefore  encouraged to load and test the software's suitability as regards their  requirements in conditions enabling the security of their systems and/or   data to be ensured and,  more generally, to use and operate it in the   same conditions as regards security.     The fact that you are presently reading this means that you have had  knowledge of the CeCILL license and that you accept its terms.    ---------------------------------------------------------------------------------------*/#include <iostream>#include <fstream>#include "../CImg.h"using namespace std;using namespace cimg_library;CImg<float> mask_x(const unsigned char scale) {   unsigned char d1 = (unsigned char) pow( 2.0, (double)(scale-1));  unsigned char d2 = (unsigned char) pow( 2.0, (double)(scale));  unsigned char cx = (unsigned char) pow( 2.0, (double)(scale));  unsigned char res = (unsigned char) pow( 2.0, (double)scale);   CImg<float> m(2*res +1,1,1);m.fill(0);  m(cx) = 6.0;  m(cx-d1) =  m(cx+d1) =4.0;  m(cx-d2) =  m(cx+d2) =1.0;  m /= 16.0;  return m;}CImg<float> mask_y(const unsigned char scale) {   unsigned char d1 = (unsigned char) pow( 2.0, (double)(scale-1));  unsigned char d2 = (unsigned char) pow( 2.0, (double)(scale));  unsigned char cy = (unsigned char) pow( 2.0, (double)(scale));  unsigned char res = (unsigned char) pow( 2.0, (double)scale);   CImg<float> m(1,2*res +1);m.fill(0);  m(0,cy) = 6.0;  m(0,cy-d1) =  m(0,cy+d1) =4.0;  m(0,cy-d2) =  m(0,cy+d2) =1.0;  m /= 16.0;  return m;}CImg<float> mask_t(const unsigned char scale) {   unsigned char d1 = (unsigned char) pow( 2.0, (double)(scale-1));  unsigned char d2 = (unsigned char) pow( 2.0, (double)(scale));  unsigned char ct = (unsigned char) pow( 2.0, (double)(scale));  unsigned char res = (unsigned char) pow( 2.0, (double)scale);   CImg<float> m(1,1,2*res +1);m.fill(0);  m(0,0,ct) = 6.0;  m(0,0,ct-d1) =  m(0,0,ct+d1) =4.0;  m(0,0,ct-d2) =  m(0,0,ct+d2) =1.0;  m /= 16.0;  return m;}/*------------------  Main procedure  ----------------*/int main(int argc,char **argv) {    cimg_usage("Perform an 'a trous' wavelet transform (using a cubic spline) on an image or on a video sequence.\n"	     "This wavelet transform is undecimated and produces 2 images/videos at each scale. For an example of\n"	     "decomposition on a video, try -i img/trees.inr (sequence from the MIT).\n"	     "\t(Type -h for help)");  // Read command line parameters  const char    *name_i  = cimg_option("-i","img/lena.pgm","Input image or video"),    *name_o  = cimg_option("-o","","Name of the multiscale analysis output"),    *axe_dec = cimg_option("-axe",(char*)NULL,"Perform the multiscale decomposition in just one direction ('x', 'y' or 't')");  const unsigned int    s = cimg_option("-s",3,"Scale of decomposition");  const bool help = cimg_option("-h",false,"Display Help");  if(help) exit(0);  // Initialize Image Data  cout << " - Load image sequence " << name_i << "...\n";  const CImg<float> texture_in(name_i);  CImg<float> mask_conv_x, mask_conv_y, mask_conv_t;  CImgList<float> res(s, texture_in.dimx(),texture_in.dimy(),texture_in.dimz());  CImgList<float> wav(s,texture_in.dimx(), texture_in.dimy(), texture_in.dimz());  cimglist_for(res,l) { res(l).fill(0.0); wav(l).fill(0.0);}  unsigned int i;  if (!axe_dec){    // Perform the multiscale decomposition in all directions    for(i=0;i<s;i++){      cout << " - Performing scale "<< i+1 <<" ... \n";      if(i==0){ res(i) =  texture_in;} else {  res(i) = res(i-1);}      mask_conv_x = mask_x(i+1);      res(i) = res(i).get_convolve(mask_conv_x);      mask_conv_y = mask_y(i+1);      res(i) = res(i).get_convolve(mask_conv_y);      mask_conv_t = mask_t(i+1);      res(i) = res(i).get_convolve(mask_conv_t);      if(i==0){wav(i) = texture_in - res(i);}  // res(0) and wav(0) are the 1st scale of decompostion        else {wav(i) = res(i-1) - res(i);}     } }  if (axe_dec) {    // Perform the multiscale decomposition in just one direction    char c;    c = cimg::uncase(axe_dec[0]);    fprintf(stderr," - Decompose the image along axe '%c'\n",c); fflush(stdout);    switch(c) {    case 'x': {       for(i=0;i<s;i++){	cout << " - Performing scale "<< i+1 <<" ... \n";	if(i==0){ res(i) =  texture_in;} else {  res(i) = res(i-1);}	mask_conv_x = mask_x(i+1);	res(i) = res(i).get_convolve(mask_conv_x);	if(i==0){wav(i) = texture_in - res(i);}  	else {wav(i) = res(i-1) - res(i);}}}      break;          case 'y': {      for(i=0;i<s;i++){	cout << " - Performing scale "<< i+1 <<" ... \n";	if(i==0){ res(i) =  texture_in;} else {  res(i) = res(i-1);}	mask_conv_y = mask_y(i+1);	res(i) = res(i).get_convolve(mask_conv_y);	if(i==0){wav(i) = texture_in - res(i);}  	else {wav(i) = res(i-1) - res(i);}}}      break;          case 't': {      for(i=0;i<s;i++){	cout << " - Performing scale "<< i+1 <<" ... \n";	if(i==0){ res(i) =  texture_in;} else {  res(i) = res(i-1);}	mask_conv_t = mask_t(i+1);	res(i) = res(i).get_convolve(mask_conv_t);	if(i==0){wav(i) = texture_in - res(i);}  	else {wav(i) = res(i-1) - res(i);}}}      break;          default: throw CImgException("Error, unknow decompostion axe '%c', try 'x', 'y' or 't'",c);    }    fputc('\n',stderr);  }      if (*name_o){    // Save the Multi-Scale Analysis    cout << " - Saving of all output sequences: "<< name_o <<" in the msa/ directory... \n";     int count = 1; // res0 = original image    char filename[256] = "", filename_wav[256] = "";    char STmp[3] = "";    system("mkdir msa");    for(i=0;i<s;i++){         strcpy( filename, "msa/res" );      strcpy( filename_wav, "msa/wav" );      if( count < 10 )	{ strcat( filename, "0" );strcat( filename_wav, "0" );}      sprintf( STmp, "%d_", count );      strcat( filename, STmp ); strcat( filename_wav, STmp );      strcat( filename,name_o);strcat( filename_wav,name_o);      res(i).save(filename);      wav(i).save(filename_wav);      count++;    }  }    // Result visualization  const float value = 255;  for(i=0;i<s;i++) {    res[i].normalize(0,255).draw_text(2,2,&value,0,11,1,"Scale %d",i);    wav[i].normalize(0,255).draw_text(2,2,&value,0,11,1,"Scale %d",i);  }    CImgDisplay disp(res,"Approximations levels by increasing scale",0);  CImgDisplay disp2(wav,"Wavelet coefficients by increasing scale",0);  while ( !disp.is_closed && disp.key!=cimg::keyQ && disp.key!=cimg::keyESC &&	  !disp2.is_closed && disp2.key!=cimg::keyQ && disp2.key!=cimg::keyESC ) {    if (disp.is_resized) disp.resize().display(res);    if (disp2.is_resized) disp2.resize().display(wav);    CImgDisplay::wait(disp,disp2);  }    return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人8x视频一区二区| 在线观看视频一区二区| 成人黄页毛片网站| 99久久99久久综合| 欧美日韩一区视频| 日韩免费看的电影| 国产亚洲精品精华液| 国产精品三级在线观看| 亚洲一区二区三区视频在线| 一区二区三区欧美日| 久久成人羞羞网站| 91麻豆精品在线观看| 69久久夜色精品国产69蝌蚪网| 日韩美女一区二区三区四区| 欧美经典一区二区三区| 天天影视色香欲综合网老头| 国产精品一区二区三区乱码| 在线视频你懂得一区二区三区| 日韩一区二区三区四区| 中文字幕乱码一区二区免费| 亚洲主播在线播放| 福利91精品一区二区三区| 欧美三电影在线| 亚洲国产精品二十页| 美国av一区二区| 99视频超级精品| 26uuu久久天堂性欧美| 一区二区三区四区不卡在线| 成人午夜激情视频| www久久精品| 奇米在线7777在线精品| 欧美伊人久久久久久久久影院| 国产精品色哟哟| 国产成人自拍在线| 欧美精品一区二区三区蜜臀| 午夜成人免费电影| 欧美日韩国产大片| 亚洲成人午夜影院| 欧美日韩一区二区在线观看| 亚洲女同一区二区| 91精品国产日韩91久久久久久| 综合久久一区二区三区| 99re这里都是精品| 国产精品国产成人国产三级 | 91麻豆自制传媒国产之光| 中文字幕电影一区| 国产成人欧美日韩在线电影| 久久综合色婷婷| 国产精品1区2区3区在线观看| 日韩欧美电影一二三| 九一九一国产精品| 国产精品视频yy9299一区| 成人av电影在线网| 五月婷婷综合网| 久久久久国产免费免费 | 久久99精品国产.久久久久| 亚洲精品一区二区三区精华液| 国产精品综合一区二区三区| 一区二区中文视频| 欧美一区二区成人6969| 黑人精品欧美一区二区蜜桃 | 中文字幕av一区二区三区免费看 | 欧美性猛交一区二区三区精品| 亚洲欧美国产77777| 91精品国产综合久久福利| 日韩电影网1区2区| 国产精品日产欧美久久久久| 色婷婷精品大在线视频| 老司机精品视频在线| 中文字幕乱码久久午夜不卡| 日本韩国一区二区三区视频| 麻豆91精品91久久久的内涵| 亚洲人成小说网站色在线 | 久久一区二区视频| 欧美影视一区在线| 丁香亚洲综合激情啪啪综合| 亚洲国产视频a| 1000部国产精品成人观看| 制服丝袜日韩国产| 91国产成人在线| 99免费精品在线| 日本不卡一二三区黄网| 亚洲国产乱码最新视频| 国产精品日韩成人| 国产日韩av一区二区| 精品福利一二区| 制服丝袜亚洲播放| 日韩一区国产二区欧美三区| 91福利在线免费观看| 91污片在线观看| 日本韩国精品在线| av在线不卡观看免费观看| 国产一区二区调教| 国产精品资源网站| 国产成人高清视频| 国产精品羞羞答答xxdd| 国产精品99久久久久久久女警| 精品一区中文字幕| 久草在线在线精品观看| 韩国欧美国产一区| 国产精品123| 国产欧美一区二区精品久导航 | 国产精品久久久一本精品| 国产性做久久久久久| 中文字幕精品综合| 亚洲国产精品自拍| 激情av综合网| av午夜一区麻豆| 欧美日韩五月天| 精品av久久707| 国产精品区一区二区三区| 一区二区三区四区不卡视频 | 国产传媒欧美日韩成人| 色呦呦国产精品| 欧美一个色资源| 亚洲日本青草视频在线怡红院| 亚洲一级在线观看| 国产乱码精品1区2区3区| 99久久亚洲一区二区三区青草| 色哟哟亚洲精品| 久久综合色一综合色88| 亚洲精品自拍动漫在线| 午夜精品123| 成人黄色在线看| 日韩三级视频在线看| 亚洲欧美日韩国产综合| 日本v片在线高清不卡在线观看| 国产精品正在播放| 91精品在线免费观看| 国产精品久久久久久妇女6080 | 99re8在线精品视频免费播放| 欧美日韩国产一区| 中文字幕亚洲视频| 国产精品一色哟哟哟| 9191精品国产综合久久久久久 | 亚洲午夜免费视频| 99久久精品国产导航| 欧美精品一区二区三区很污很色的| 亚洲免费毛片网站| 成人avav影音| 欧美激情综合五月色丁香小说| 美女在线视频一区| 91精品国产入口在线| 亚洲综合在线第一页| 99精品欧美一区| 中文字幕一区二区视频| 国产传媒久久文化传媒| 久久精品视频免费观看| 极品少妇一区二区| 精品美女被调教视频大全网站| 天天色天天操综合| 欧美一区二区网站| 人人狠狠综合久久亚洲| 在线不卡免费欧美| 美女视频黄 久久| 久久免费国产精品| 不卡av电影在线播放| 粉嫩一区二区三区性色av| 国产精品第13页| 欧美三级视频在线播放| 亚洲成人免费看| 精品国产欧美一区二区| 国产成人自拍高清视频在线免费播放| 国产欧美日韩亚州综合| 99免费精品视频| 午夜激情综合网| 久久久不卡网国产精品二区| 国产精品18久久久久久久久久久久| 国产亚洲精品aa午夜观看| 91麻豆蜜桃一区二区三区| 午夜视频在线观看一区二区三区 | 欧美主播一区二区三区| 日韩国产一区二| 中文字幕欧美激情| 欧美精品久久一区二区三区| 韩国成人在线视频| 亚洲综合久久久久| 久久综合色天天久久综合图片| 91视频精品在这里| 国内偷窥港台综合视频在线播放| 亚洲欧洲无码一区二区三区| 欧美久久一二三四区| 成人高清免费观看| 美女尤物国产一区| 一区二区三区日韩精品视频| 久久尤物电影视频在线观看| 欧美探花视频资源| av不卡免费在线观看| 国产成人精品aa毛片| 看国产成人h片视频| 亚洲精品成人悠悠色影视| 国产人成一区二区三区影院| 欧美日韩免费一区二区三区视频 | 日韩美女啊v在线免费观看| 日韩免费观看高清完整版| 欧美在线一区二区| 欧美在线综合视频| 色婷婷狠狠综合| 91香蕉国产在线观看软件| 成人看片黄a免费看在线|