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

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

?? inrcast.cpp

?? this a image processing program
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*------------------------------------------------------------------------------------  File        : inrcast.cpp  Description : 1D/2D/3D Image converter and visualizer based on command line arguments  Copyright  : David Tschumperle - http://www.greyc.ensicaen.fr/~dtschump/  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 "../CImg.h"using namespace cimg_library;// The undef below is necessary when using a non-standard compiler.#ifdef cimg_use_visualcpp6#define std#endif//---------------------------------------------// Convert to output image, save and visualize//---------------------------------------------template<typename T,typename t> void output_file(int argc, char **argv, CImgList<T>& src,						 const CImgList<char>& filename, const t&) {  // Read command line arguments  const char* typei = cimg_option("-i","float","Input pixel type (can be : char,uchar,ushort,short,uint,int,ulong,long,float,double)");  cimg_option("-t",typei,"Output pixel type (can be : char,uchar,ushort,short,uint,int,ulong,long,float,double)");  const bool a_endian   = cimg_option("-endian",false,"Invert Endianness");  const bool a_orient   = cimg_option("-orient",false,"Compute vector orientations");  const bool a_norm     = cimg_option("-norm",false,"Compute vector norms");  const float a_rotate  = cimg_option("-angle",0.0f,"Rotate image(s) (angle in degrees)");  const bool a_transpose  = cimg_option("-transpose",false,"Transpose image(s)");  const char  a_mirror  = cimg_option("-mirror",'\0',"Mirror image(s) along axis (can be 'x','y','z' or 'v')");  const float a_blur    = cimg_option("-blur",0.0f,"Blur image(s) (variance)");  const float a_noiseg  = cimg_option("-ng",0.0f,"Add gaussian noise (variance)");  const float a_noiseu  = cimg_option("-nu",0.0f,"Add uniform noise (variance)");  const float a_noises  = cimg_option("-ns",0.0f,"Add salt&pepper noise (percentage)");  const char *a_cut     = cimg_option("-cut",(const char*)NULL,"Pixel value cutting (ex : '0,255')");  const char *a_vnorm   = cimg_option("-val",(const char*)NULL,"Pixel value normalization (ex : '0,255')");  const int a_quantize  = cimg_option("-quantize",0,"Uniform quantization (number of levels)");  const char *a_bcrop   = cimg_option("-beg",(const char*)NULL,"Upper-left coordinates crop (2D,3D or 4D coordinates)");  const char *a_ecrop   = cimg_option("-end",(const char*)NULL,"Lower-right coordinates crop (2D,3D or 4D coordinates");  const char *a_resize  = cimg_option("-g",(const char*)NULL,"Resize image(s) (ex : '100x100' or '50%x30%')");  const int a_interp    = cimg_option("-interp",3,"Resizing interpolation type (0=none, 1=bloc, 2=mosaic, 3=linear, 4=grid, 5=cubic");  const bool a_equalize = cimg_option("-equalize",false,"Equalize histogram");  const float a_mul     = cimg_option("-mul",1.0f,"Multiply pixel values by a float constant");  const float a_add     = cimg_option("-add",0.0f,"Add a float constant to pixel values");  const int a_erode     = cimg_option("-erode",0,"Erode image(s) (number of steps)");  const int a_dilate    = cimg_option("-dilate",0,"Dilate image(s) (number of steps)");  const int a_median    = cimg_option("-median",0,"Apply a median filter with specified size");  const float a_smooth  = cimg_option("-smooth",0.0f,"Smooth the image anisotropically with specified strength");  const bool a_falsecolors = cimg_option("-falsecolors",false,"Compute false colors");  const int a_histo     = cimg_option("-histogram",0,"Compute image histogram (number of levels)");  const char *a_break   = cimg_option("-b",(const char*)NULL,"Break image along axis (can be 'z', 'x3', 'y2', etc...)");  const char a_append   = cimg_option("-a",'\0',"Append images along axis (can be 'x','y','z' or 'v')");  const bool a_ucrop    = cimg_option("-crop",false,"User-selected crop");  const bool a_log      = cimg_option("-log",false,"Apply logarithm");  const bool a_sqrt     = cimg_option("-sqrt",false,"Apply square root");  const bool a_sqr      = cimg_option("-sqr",false,"Apply square");  const char a_unroll   = cimg_option("-unroll",'\0',"Unroll axis");  const char *a_permute = cimg_option("-permute",(const char*)NULL,"Permute image axes");  const char *a_annot   = cimg_option("-annotate",(char*)NULL,"Add annotation to image(s)");  const bool a_reverse  = cimg_option("-r",false,"Reverse image list");  const char *file_o    = cimg_option("-o",(const char*)NULL,"Output file");  const bool a_visu     = cimg_option("-visu",false,"Image visualization");  const bool a_get_size = cimg_option("-get_size",false,"Get image size");  const bool a_get_width = cimg_option("-get_width",false,"Get image width");  const bool a_get_height = cimg_option("-get_height",false,"Get image height");  const bool a_get_depth = cimg_option("-get_depth",false,"Get image depth");  const bool a_get_dim = cimg_option("-get_dim",false,"Get image dim");  if (!src.size) {    std::fprintf(stderr,"\n** You must specify at least one input image\n** Try '%s -h' to get help\n**\n",cimg::basename(argv[0]));    std::exit(0);  }  // Special commands : Get image dimensions  if (a_get_size)   { std::printf("%d %d %d %d",src[0].width,src[0].height,src[0].depth,src[0].dim); std::exit(0); }  if (a_get_width)  { std::printf("%d",src[0].width);  std::exit(0); }  if (a_get_height) { std::printf("%d",src[0].height); std::exit(0); }  if (a_get_depth)  { std::printf("%d",src[0].depth);  std::exit(0); }  if (a_get_dim)    { std::printf("%d",src[0].dim);    std::exit(0); }  // Display image statistics  std::fprintf(stderr,"\n- Input image(s) statistics :\n");  cimglist_for(src,l) {    CImgStats stats(src(l));    std::fprintf(stderr,"\t> [%d]='%s' : size=%dx%dx%dx%d, min=%g, mean=%g, max=%g, var=%g\n",		 l,cimg::basename(filename(l).data),		 src[l].dimx(),src[l].dimy(),src[l].dimz(),src[l].dimv(),		 stats.min,stats.mean,stats.max,stats.variance		 );  }  // Invert Endianness  if (a_endian) {    std::fprintf(stderr,"\n- Invert Endianness\n"); std::fflush(stderr);    cimglist_for(src,l) cimg::endian_swap(src[l].ptr(),src[l].size());  }  // Smooth the image anisotropically  if (a_smooth>0) {    std::fprintf(stderr,"\n- Smooth the image anisotropically with strength=%g\n",a_smooth); std::fflush(stderr);    cimglist_for(src,l) src[l].blur_anisotropic(a_smooth);  }  // Vector orientation computation  if (a_orient) {    std::fprintf(stderr,"\n- Vector orientation computation\t"); std::fflush(stderr);    cimglist_for(src,l) src[l].orientation_pointwise();  }  // Vector norm computation  if (a_norm) {    std::fprintf(stderr,"\n- Vector norm computation\t"); std::fflush(stderr);    cimglist_for(src,l) src[l].norm_pointwise();  }  // Image rotation  if (a_rotate!=0) {    std::fprintf(stderr,"\n- Image rotation ( %g degrees )\t",a_rotate); std::fflush(stderr);    cimglist_for(src,l) src[l].rotate(a_rotate,3);  }  // Image transpose  if (a_transpose) {    std::fprintf(stderr,"\n- Image transpose\t"); std::fflush(stderr);    cimglist_for(src,l) src[l].transpose();  }  // Mirror Image  if (a_mirror!='\0') {    std::fprintf(stderr,"\n- Mirror image along axis '%c'\t",a_mirror); std::fflush(stderr);    cimglist_for(src,l) src[l].mirror(a_mirror);  }  // Image blur  if (a_blur!=0) {    std::fprintf(stderr,"\n- Image blur ( sigma = %g )\t",a_blur); std::fflush(stderr);    cimglist_for(src,l) src[l].blur(a_blur);  }  // Image noise  if (a_noiseg) {    std::fprintf(stderr,"\n- Add gaussian noise ( variance = %g )\t",a_noiseg); std::fflush(stderr);    cimglist_for(src,l) src[l].noise(a_noiseg,0);  }  if (a_noiseu) {    std::fprintf(stderr,"\n- Add uniform noise ( variance = %g )\t",a_noiseu); std::fflush(stderr);    cimglist_for(src,l) src[l].noise(a_noiseu,1);  }  if (a_noises) {    std::fprintf(stderr,"\n- Add uniform noise ( variance = %g )\t",a_noises); std::fflush(stderr);    cimglist_for(src,l) src[l].noise(a_noises,2);  }  // Pixel value cutting  if (a_cut) {    std::fprintf(stderr,"\n- Pixel cutting in [%s]\t",a_cut); std::fflush(stderr);    cimglist_for(src,l) {      CImg<T>& img=src[l];      CImgStats stats(img);      double vmin=stats.min, vmax=stats.max;      std::sscanf(a_cut,"%lg%*c%lg",&vmin,&vmax);      img.cut((T)vmin,(T)vmax);    }  }  // Pixel value normalization  if (a_vnorm) {    std::fprintf(stderr,"\n- Pixel normalization in [%s]\t",a_vnorm); std::fflush(stderr);    cimglist_for(src,l) {      CImg<T>& img=src[l];      CImgStats stats(img);      double vmin=stats.min, vmax=stats.max;      std::sscanf(a_vnorm,"%lg%*c%lg",&vmin,&vmax);      img.normalize((T)vmin,(T)vmax);    }  }  // Image quantification  if (a_quantize) {    std::fprintf(stderr,"\n- Quantize image in %d levels\t",a_quantize); std::fflush(stderr);    cimglist_for(src,l) src[l].quantize(a_quantize);  }  // Image cropping  if (a_bcrop || a_ecrop) {    std::fprintf(stderr,"\n- Crop image(s) to %s-%s\t",a_bcrop?a_bcrop:"*",a_ecrop?a_ecrop:"*"); std::fflush(stderr);    cimglist_for(src,l) {      CImg<T> &img=src[l];      int x0=0,y0=0,z0=0,v0=0,x1=img.dimx()-1,y1=img.dimy()-1,z1=img.dimz()-1,v1=img.dimv()-1;      char buf[32];      if (a_bcrop) std::sscanf(a_bcrop,"%d%15[^0-9]%d%15[^0-9]%d%15[^0-9]%d%15[^0-9]",&x0,buf+0,&y0,buf+1,&z0,buf+2,&v0,buf+3);      if (a_ecrop) std::sscanf(a_ecrop,"%d%15[^0-9]%d%15[^0-9]%d%15[^0-9]%d%15[^0-9]",&x1,buf+4,&y1,buf+5,&z1,buf+6,&v1,buf+7);      if (buf[0]=='%') x0 = x0*(img.dimx()-1)/100;      if (buf[1]=='%') y0 = y0*(img.dimy()-1)/100;      if (buf[2]=='%') z0 = z0*(img.dimz()-1)/100;      if (buf[3]=='%') v0 = v0*(img.dimv()-1)/100;      if (buf[4]=='%') x1 = x1*(img.dimx()-1)/100;      if (buf[5]=='%') y1 = y1*(img.dimy()-1)/100;      if (buf[6]=='%') z1 = z1*(img.dimz()-1)/100;      if (buf[7]=='%') v1 = v1*(img.dimv()-1)/100;      if (x0>x1) cimg::swap(x0,x1);      if (y0>y1) cimg::swap(y0,y1);      if (z0>z1) cimg::swap(z0,z1);      if (v0>v1) cimg::swap(v0,v1);      img.crop(x0,y0,z0,v0,x1,y1,z1,v1);    }  }  // Image resizing  if (a_resize) {    std::fprintf(stderr,"\n- Resize image(s) to '%s'\t",a_resize); std::fflush(stderr);    int dimx=-100,dimy=-100,dimz=-100,dimv=-100;    char buf[16];    std::sscanf(a_resize,"%d%15[^0-9]%d%15[^0-9]%d%15[^0-9]%d%15[^0-9]",&dimx,buf,&dimy,buf+1,&dimz,buf+2,&dimv,buf+3);    if (buf[0]=='%') dimx=-dimx;    if (buf[1]=='%') dimy=-dimy;    if (buf[2]=='%') dimz=-dimz;    if (buf[3]=='%') dimv=-dimv;    cimglist_for(src,l) src[l].resize(dimx,dimy,dimz,dimv,a_interp);  }  if (a_equalize) {    std::fprintf(stderr,"\n- Equalize histogram\t"); std::fflush(stderr);    cimglist_for(src,l) src[l].equalize_histogram(4096);  }  // Multiplication of pixel values  if (a_mul!=1) {    std::fprintf(stderr,"\n- Multiply pixel values by %g\t",a_mul); std::fflush(stderr);    cimglist_for(src,l) src[l]*=a_mul;  }  // Add a constant to pixel values  if (a_add!=0) {    std::fprintf(stderr,"\n- Add %g to pixel values\t",a_add); std::fflush(stderr);    cimglist_for(src,l) src[l]+=(T)a_add;  }  // Erode image  if (a_erode) {    std::fprintf(stderr,"\n- Erode image(s) %d times",a_erode); std::fflush(stderr);    cimglist_for(src,l) src[l].erode(a_erode);  }  // Dilate image  if (a_dilate) {    std::fprintf(stderr,"\n- Dilate image(s) %d times",a_dilate); std::fflush(stderr);    cimglist_for(src,l) src[l].dilate(a_dilate);  }  // Apply a median filter  if (a_median) {    std::fprintf(stderr,"\n- Apply a median filter of size %d\n",a_median); std::fflush(stderr);    cimglist_for(src,l) src[l].blur_median(a_median);  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲私人国产精品va媚药| 国产69精品久久777的优势| 蜜臀a∨国产成人精品| 经典三级一区二区| 99精品桃花视频在线观看| 欧美日韩中文精品| 精品国产乱码久久久久久蜜臀| 国产精品欧美综合在线| 亚洲综合免费观看高清完整版在线| 免费的成人av| 91亚洲国产成人精品一区二三| 欧美一区二区三区四区在线观看| 欧美激情综合五月色丁香小说| 亚洲成人av在线电影| 国产91精品一区二区| 制服丝袜在线91| 国产精品国产a级| 美腿丝袜亚洲三区| 91麻豆精品秘密| 精品91自产拍在线观看一区| 一区二区在线观看不卡| 国产一区 二区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 26uuu精品一区二区三区四区在线| 国产精品久久久久久久久久免费看| 午夜激情久久久| a4yy欧美一区二区三区| 欧美va在线播放| 亚洲愉拍自拍另类高清精品| 国产激情一区二区三区四区 | 国产日韩亚洲欧美综合| 亚洲一区二区三区视频在线 | 国产精品久线观看视频| 日韩中文字幕亚洲一区二区va在线 | 中文字幕亚洲精品在线观看| 日韩不卡一区二区| 91国模大尺度私拍在线视频| 久久久久综合网| 免费日本视频一区| 欧美在线观看视频一区二区| 国产精品色哟哟| 国产在线不卡视频| 欧美一区二区三区小说| 夜色激情一区二区| 91小视频免费看| 国产亲近乱来精品视频| 精品一区二区三区在线视频| 欧美日韩精品专区| 亚洲乱码国产乱码精品精可以看| 国产激情视频一区二区三区欧美 | 日韩不卡手机在线v区| 色播五月激情综合网| 国产精品国产三级国产普通话蜜臀 | 91免费版在线看| 日本一区二区在线不卡| 色婷婷综合久色| 久久久精品黄色| 国产一区二区三区四| 欧美成人女星排名| 日韩中文字幕区一区有砖一区 | 亚洲国产综合在线| 97成人超碰视| 亚洲欧美日韩国产手机在线| 99热99精品| 国产精品久久久久影院色老大 | 国产精品美女久久福利网站| 日本91福利区| 欧美一区二区三区不卡| 天天影视色香欲综合网老头| 8v天堂国产在线一区二区| 亚洲一区二区三区影院| 欧美在线看片a免费观看| 一区二区三区产品免费精品久久75 | 久久免费视频色| 国内久久精品视频| 久久嫩草精品久久久精品| 国产精品99久久久久久似苏梦涵| 精品国产乱码久久久久久影片| 国内精品视频一区二区三区八戒| 欧美va亚洲va国产综合| 精品写真视频在线观看| 久久蜜桃一区二区| 国产a级毛片一区| 国产精品欧美久久久久一区二区| 99精品热视频| 亚洲午夜激情av| 欧美一区二区在线视频| 麻豆精品一区二区综合av| 亚洲精品一区二区三区99| 国产黄色精品网站| 国产精品国产三级国产aⅴ入口| 成人白浆超碰人人人人| 玉米视频成人免费看| 欧美日韩成人在线一区| 捆绑调教一区二区三区| 国产亚洲精品bt天堂精选| 北岛玲一区二区三区四区| 亚洲免费观看高清| 欧美日韩aaa| 精品一区二区三区不卡| 欧美激情在线一区二区三区| 91啪在线观看| 日日摸夜夜添夜夜添亚洲女人| 日韩精品一区二区三区蜜臀| 成人午夜电影网站| 一区二区三区不卡视频| 日韩一级在线观看| 国产91在线|亚洲| 亚洲激情男女视频| 精品日韩一区二区| av一区二区三区黑人| 日韩综合在线视频| 男女激情视频一区| 中文字幕精品三区| 欧美嫩在线观看| 国产精品一卡二卡在线观看| 亚洲综合色区另类av| 2022国产精品视频| 欧美在线免费播放| 国产乱码精品一区二区三区忘忧草 | 日韩精彩视频在线观看| 久久这里只有精品首页| 色哟哟一区二区在线观看| 日本成人在线网站| 亚洲女同女同女同女同女同69| 日韩一级大片在线观看| 91麻豆福利精品推荐| 另类欧美日韩国产在线| 一级做a爱片久久| 久久伊人中文字幕| 欧美色图12p| 成人视屏免费看| 美女脱光内衣内裤视频久久网站 | 成人午夜免费电影| 无吗不卡中文字幕| 亚洲视频在线观看一区| 精品少妇一区二区三区视频免付费 | 69堂亚洲精品首页| 91网站最新地址| 国产剧情一区二区| 蜜臀久久99精品久久久久久9| 国产精品高潮呻吟| 久久综合久色欧美综合狠狠| 在线观看www91| av在线综合网| 国产一区二区福利| 日韩成人精品在线观看| 一区二区三区蜜桃| 亚洲欧洲日韩在线| 久久久久99精品国产片| 777欧美精品| 欧美影视一区在线| 丁香婷婷综合色啪| 国产一区二区久久| 久久精品噜噜噜成人av农村| 亚洲成人免费观看| 亚洲精品videosex极品| 国产精品私房写真福利视频| 欧美一级午夜免费电影| 欧美日韩国产一级| 欧美无乱码久久久免费午夜一区| 成人不卡免费av| 国产成人免费在线视频| 经典一区二区三区| 久久 天天综合| 美腿丝袜亚洲三区| 免费成人在线播放| 日韩av网站免费在线| 午夜影院久久久| 亚洲一卡二卡三卡四卡无卡久久| 中文字幕亚洲成人| 国产精品国产三级国产三级人妇| 国产欧美日本一区二区三区| 久久尤物电影视频在线观看| 日韩精品一区二区三区在线| 7777精品伊人久久久大香线蕉| 欧美三级欧美一级| 欧美日韩视频一区二区| 欧美日韩一区二区三区四区五区| 欧美亚洲综合一区| 精品视频在线视频| 欧美日韩亚州综合| 在线播放91灌醉迷j高跟美女| 欧美又粗又大又爽| 欧美在线视频你懂得| 色悠悠亚洲一区二区| 色中色一区二区| 欧美在线制服丝袜| 欧美日韩五月天| 制服.丝袜.亚洲.另类.中文| 欧美日韩国产a| 5566中文字幕一区二区电影| 91精品国产色综合久久久蜜香臀| 7777精品久久久大香线蕉| 日韩欧美123| 久久久久久久久久美女| 综合精品久久久| 亚洲国产精品影院| 日本成人在线视频网站| 国产一区二区三区综合|