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

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

?? image.c

?? 兩幅圖像匹配算法
?? C
?? 第 1 頁 / 共 5 頁
字號:
static void *readBinaryCooked(FILE *inFile, ImageHeader **readimHeader){    unsigned width, height;    boolean failed;    BinaryImage im;    int x, y;    /*     * File format:     * P1 <width> <height>     * bunches of 0<ws> and 1<ws>, suitable for reading with gettoken.     */    width = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    height = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}        im = (BinaryImage)imNew(IMAGE_BINARY, width, height);    if (im == (BinaryImage)NULL) {	return((void *)NULL);	}	    for (y = 0; y < height; y++) {	for (x = 0; x < width; x++) {	    /* Can't use gettoken - may not be separating whitespace */	    imRef(im, x, y) = getpbmtoken(inFile, &failed);	    if (failed) {		imFree(im);		return((void *)NULL);		}	    }	}    *readimHeader = im->header;    return(im);    }static void *readGrayCooked(FILE *inFile, ImageHeader **readimHeader){    unsigned width, height;    unsigned maxval;    boolean failed;    GrayImage im;    int x, y;    /*     * File format:     * P2 <width> <height> <maxval>     * bunches of <value><ws> where 0 <= <value> <= maxval, suitable for     * reading with gettoken.     * If maxval is not 255, we'll have to rescale the values; this will     * be slow.     */    width = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    height = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    maxval = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}        im = (GrayImage)imNew(IMAGE_GRAY, width, height);    if (im == (GrayImage)NULL) {	return((void *)NULL);	}	    if (maxval == COLRNG - 1) {	/* Special case the nice case */	for (y = 0; y < height; y++) {	    for (x = 0; x < width; x++) {		imRef(im, x, y) = gettoken(inFile, &failed);		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		}	    }	}    else {	/* Have to rescale. */	for (y = 0; y < height; y++) {	    for (x = 0; x < width; x++) {		imRef(im, x, y) =		    (gettoken(inFile, &failed) * (COLRNG - 1)) / maxval;		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		}	    }	}    *readimHeader = im->header;    return(im);    }static void *readRGBCooked(FILE *inFile, ImageHeader **readimHeader){    unsigned width, height;    unsigned maxval;    boolean failed;    RGBImage im;    int x, y;    /*     * File format:     * P3 <width> <height> <maxval>     * bunches of <rvalue><ws><gvalue><ws><bvalue><ws> where     * 0 <= <rvalue>, <gvalue>, <bvalue> <= maxval, suitable for     * reading with gettoken.     * If maxval is not 255, we'll have to rescale the values; this will     * be slow.     */    width = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    height = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    maxval = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}        im = (RGBImage)imNew(IMAGE_RGB, width, height);    if (im == (RGBImage)NULL) {	return((void *)NULL);	}	    if (maxval == COLRNG - 1) {	/* Special case the nice case */	for (y = 0; y < height; y++) {	    for (x = 0; x < width; x++) {		imRef(im, x, y).r = gettoken(inFile, &failed);		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		imRef(im, x, y).g = gettoken(inFile, &failed);		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		imRef(im, x, y).b = gettoken(inFile, &failed);		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		}	    }	}    else {	/* Have to rescale. */	for (y = 0; y < height; y++) {	    for (x = 0; x < width; x++) {		imRef(im, x, y).r =		    (gettoken(inFile, &failed) * (COLRNG - 1)) / maxval;		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		imRef(im, x, y).g =		    (gettoken(inFile, &failed) * (COLRNG - 1)) / maxval;		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		imRef(im, x, y).b =		    (gettoken(inFile, &failed) * (COLRNG - 1)) / maxval;		if (failed) {		    imFree(im);		    return((void *)NULL);		    }		}	    }	}    *readimHeader = im->header;    return(im);    }static void *readBinary(FILE *inFile, ImageHeader **readimHeader){    unsigned width, height;    boolean failed;    BinaryImage im;    int x, y;    int c, bitsleft;    /*     * File format:     * P4 <width> <height>     * binary image, packed, high bit is leftmost; rows begin on byte     * boundaries.     */    width = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    height = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}        im = (BinaryImage)imNew(IMAGE_BINARY, width, height);    if (im == (BinaryImage)NULL) {	return((void *)NULL);	}	    c = EOF;    for (y = 0; y < height; y++) {	bitsleft = 0;	for (x = 0; x < width; x++) {	    if (bitsleft == 0) {		c = getc(inFile);		if (c == EOF) {		    imFree(im);		    return((void *)NULL);		    }		bitsleft = 8;		}	    /* High bit first */	    if (c & (1 << (--bitsleft))) {		imRef(im, x, y) = 1;		}	    /* It's already zero by default */	    }	}    *readimHeader = im->header;    return(im);    }static void *readGray(FILE *inFile, ImageHeader **readimHeader){    unsigned width, height;    unsigned maxval;    boolean failed;    GrayImage im;    int x, y;    /*     * File format:     * P5 <width> <height> <maxval>     * image data in reading order, one byte per pixel.     * If maxval is not 255, we'll have to rescale the values; this will     * be slow.     */    width = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    height = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    maxval = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}        im = (GrayImage)imNew(IMAGE_GRAY, width, height);    if (im == (GrayImage)NULL) {	return((void *)NULL);	}	    /* Inhale everything. */    if (fread((char *)(im->data[0]), sizeof(unsigned char),	      (width * height), inFile) != (width * height)) {	imFree(im);	return((void *)NULL);	}    if (maxval != COLRNG - 1) {	/* Have to rescale. */	for (y = 0; y < height; y++) {	    for (x = 0; x < width; x++) {		imRef(im, x, y) =		    (imRef(im, x, y) * (COLRNG - 1)) / maxval;		}	    }	}    *readimHeader = im->header;    return(im);    }static void *readRGB(FILE *inFile, ImageHeader **readimHeader){    unsigned width, height;    unsigned maxval;    boolean failed;    RGBImage im;    int x, y;    /*     * File format:     * P3 <width> <height> <maxval>     * image data, three bytes per pixel, in RGB order.     * If maxval is not 255, we'll have to rescale the values; this will     * be slow.     */    width = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    height = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}    maxval = gettoken(inFile, &failed);    if (failed) {	return((void *)NULL);	}        im = (RGBImage)imNew(IMAGE_RGB, width, height);    if (im == (RGBImage)NULL) {	return((void *)NULL);	}	    /* Inhale everything. */    if (fread((char *)(im->data[0]), sizeof(RGB),	      (width * height), inFile) != (width * height)) {	imFree(im);	return((void *)NULL);	}    if (maxval != COLRNG - 1) {	/* Have to rescale. */	for (y = 0; y < height; y++) {	    for (x = 0; x < width; x++) {		imRef(im, x, y).r =		    (imRef(im, x, y).r * (COLRNG - 1)) / maxval;		imRef(im, x, y).g =		    (imRef(im, x, y).g * (COLRNG - 1)) / maxval;		imRef(im, x, y).b =		    (imRef(im, x, y).b * (COLRNG - 1)) / maxval;		}	    }	}    *readimHeader = im->header;    return(im);    }/* Here's a macro that expands out to a function to read a simple file */#define READFUNC(funcname, imtype, imtag, eltype) \static void * \funcname(FILE *inFile, ImageHeader **readimHeader) \{ \    unsigned width, height; \    boolean failed; \    imtype im; \    width = gettoken(inFile, &failed); \    if (failed) { \	return((void *)NULL); \	} \    height = gettoken(inFile, &failed); \    if (failed) { \	return((void *)NULL); \	} \    im = (imtype)imNew(imtag, width, height); \    if (im == (imtype)NULL) { \	return((void *)NULL); \	} \    if (fread((char *)(im->data[0]), sizeof(eltype), \	      (width * height), inFile) != (width * height)) { \	imFree(im); \	return((void *)NULL); \	} \    *readimHeader = im->header; \    return(im); \    }READFUNC(readFloat, FloatImage, IMAGE_FLOAT, float)READFUNC(readDouble, DoubleImage, IMAGE_DOUBLE, double)READFUNC(readLong, LongImage, IMAGE_LONG, long)READFUNC(readShort, ShortImage, IMAGE_SHORT, short)#undef	READFUNC/* * Here be dragons. * * Well, more like an enormous number of conversion routines... which are * cooked up out of some fairly horrendous macros. */#define CONVFUNC(funcname, fromimtype, fromimtag, fromptrtype, toimtype, toimtag, toptrtype, assignment) \static void * \funcname(void *im) \{ \    fromimtype fromim; \    toimtype toim; \    fromptrtype fromptr; \    toptrtype toptr; \    int x, y; \    assert(im != (void *)NULL); \    fromim = (fromimtype)im; \    toim = (toimtype)imNewOffset(toimtag, \				 imGetWidth(fromim), imGetHeight(fromim), \				 imGetXBase(fromim), imGetYBase(fromim)); \    if (toim == (toimtype)NULL) { \	return((void *)NULL); \	} \    for (y = imGetYBase(fromim); y <= imGetYMax(fromim); y++) { \	fromptr = imGetPixPtr(fromim, imGetXBase(fromim), y); \	toptr = imGetPixPtr(toim, imGetXBase(toim), y); \	for (x = imGetXBase(fromim); x <= imGetXMax(fromim); x++) { \	    assignment; \	    imPtrRight(fromim, fromptr); \	    imPtrRight(toim, toptr); \	    } \	} \    return((void *)toim); \    }#define PROMFUNC(funcname, fromimtype, fromimtag, fromptrtype, toimtype, toimtag, toptrtype, assignment1, assignment2) \static void * \funcname(void *im) \{ \    fromimtype fromim; \    toimtype toim; \    fromptrtype fromptr; \    toptrtype toptr; \    double slope; \    double offset; \    int x, y; \    assert(im != (void *)NULL); \    fromim = (fromimtype)im; \    toim = (toimtype)imNewOffset(toimtag, \				 imGetWidth(fromim), imGetHeight(fromim), \				 imGetXBase(fromim), imGetYBase(fromim)); \    if (toim == (toimtype)NULL) { \	return((void *)NULL); \	} \    slope = convertTable[fromimtag][toimtag].slope; \    offset = convertTable[fromimtag][toimtag].offset; \    if ((slope == 1.) && (offset == 0.)) { \	/* Special case - straight assignment *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产另类一区| 九九视频精品免费| 99精品视频免费在线观看| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 美女被吸乳得到大胸91| 欧美xxxxx牲另类人与| 激情亚洲综合在线| 国产女主播一区| 91丝袜美女网| 亚洲成人av一区二区三区| 日韩欧美自拍偷拍| 国产精品77777竹菊影视小说| 欧美国产日韩亚洲一区| 色综合久久九月婷婷色综合| 亚洲自拍偷拍九九九| 日韩一区二区在线观看视频播放| 成人h动漫精品| 亚洲毛片av在线| 3d动漫精品啪啪1区2区免费| 国产一区二区三区四区五区美女| 国产精品美女久久久久aⅴ国产馆| 色综合网色综合| 日韩电影免费在线| 欧美国产精品一区二区三区| 在线观看日产精品| 国产精品自产自拍| 亚洲成人av一区| 国产精品日日摸夜夜摸av| 欧美日韩成人在线一区| 成人精品免费网站| 午夜电影一区二区三区| 中文字幕精品一区二区三区精品| 欧美亚洲国产怡红院影院| 激情五月激情综合网| 亚洲欧美日韩人成在线播放| 亚洲精品一区二区三区精华液| 成人app网站| 麻豆精品精品国产自在97香蕉| 国产精品久久久久毛片软件| 91精品福利在线一区二区三区| 成人激情小说乱人伦| 免费在线视频一区| 亚洲午夜久久久| 欧美韩国日本一区| 日韩色在线观看| 欧美猛男男办公室激情| 成人开心网精品视频| 久久超碰97中文字幕| 亚洲国产综合色| 国产精品麻豆欧美日韩ww| 日韩精品中文字幕在线一区| 欧美性大战久久久| 成人不卡免费av| 国产精品一级片| 久久精品国产亚洲a| 亚洲综合激情小说| 亚洲欧洲日韩女同| 国产拍揄自揄精品视频麻豆| 日韩免费在线观看| 91精品婷婷国产综合久久| 91日韩精品一区| 大胆亚洲人体视频| 国产精品综合在线视频| 久久99精品久久久久久国产越南 | 色婷婷综合激情| 成人激情午夜影院| 国产成都精品91一区二区三| 久久不见久久见中文字幕免费| 日韩黄色小视频| 国产一区999| 麻豆成人综合网| 免费在线观看成人| 日韩经典一区二区| 日韩国产精品久久久久久亚洲| 一二三四区精品视频| 亚洲另类一区二区| 亚洲品质自拍视频| 亚洲丝袜美腿综合| 一区二区三区在线播| 亚洲精品国产第一综合99久久| 国产精品久久久久久久久久免费看| 国产视频一区二区三区在线观看| 久久综合五月天婷婷伊人| 久久久综合视频| 日本一区二区高清| 中文字幕在线不卡视频| 中文字幕在线视频一区| 亚洲日穴在线视频| 亚洲五码中文字幕| 石原莉奈一区二区三区在线观看| 日韩在线播放一区二区| 日本伊人精品一区二区三区观看方式| 天天色图综合网| 久草在线在线精品观看| 国产成人在线视频网站| 91理论电影在线观看| 欧美视频一区二区三区在线观看| 欧美日本在线一区| 欧美白人最猛性xxxxx69交| 亚洲精品一线二线三线| 中文字幕精品一区| 亚洲国产一二三| 九九在线精品视频| 色综合天天视频在线观看| 欧美妇女性影城| 久久久99久久| 亚洲综合精品自拍| 韩国欧美国产一区| 91免费版在线| 精品久久久久久久久久久院品网| 国产精品久99| 日韩高清中文字幕一区| 国产成人综合网| 欧美日韩一区不卡| wwww国产精品欧美| 亚洲综合免费观看高清在线观看| 青青草成人在线观看| 成人av电影免费在线播放| 3atv一区二区三区| 国产精品美女视频| 首页国产欧美日韩丝袜| 成人精品亚洲人成在线| 制服丝袜成人动漫| 国产精品乱码人人做人人爱| 午夜影院在线观看欧美| 成人激情免费视频| 在线不卡一区二区| 亚洲欧美综合色| 国精品**一区二区三区在线蜜桃| 日韩午夜激情视频| 最好看的中文字幕久久| 久久精品999| 欧美伊人久久大香线蕉综合69| 国产日韩欧美一区二区三区综合 | 丝袜诱惑制服诱惑色一区在线观看 | 麻豆精品视频在线观看| 色婷婷综合在线| 国产欧美视频一区二区| 青青草国产成人av片免费| 日本韩国一区二区| 国产网红主播福利一区二区| 视频一区视频二区在线观看| 99视频精品免费视频| 精品国产伦一区二区三区观看方式 | 欧美伊人久久久久久午夜久久久久| 国产亚洲人成网站| 毛片av一区二区| 欧美日韩激情一区| 亚洲欧洲综合另类在线| 不卡一区中文字幕| 久久免费视频一区| 裸体在线国模精品偷拍| 欧美年轻男男videosbes| 亚洲色欲色欲www在线观看| 国产iv一区二区三区| 国产日韩综合av| 国产999精品久久久久久绿帽| 欧美电影免费观看高清完整版在线| 亚洲视频资源在线| 97se狠狠狠综合亚洲狠狠| 亚洲国产成人在线| 岛国精品在线播放| 久久久国产综合精品女国产盗摄| 久久se精品一区精品二区| 欧美岛国在线观看| 老司机精品视频导航| 日韩一区二区在线看片| 琪琪一区二区三区| 日韩精品一区二区三区四区视频| 偷窥国产亚洲免费视频| 欧美日本免费一区二区三区| 亚洲小说欧美激情另类| 欧美在线视频你懂得| 一区二区三区在线视频观看| 91免费国产视频网站| 一区二区三区中文字幕在线观看| 国产精品一区一区| 欧美日韩亚洲综合| 欧美日韩国产一级| 欧美性生活久久| 色94色欧美sute亚洲线路一久| 国产精品免费aⅴ片在线观看| 成人精品国产福利| 亚洲欧洲成人精品av97| 色哟哟在线观看一区二区三区| 一区二区在线观看免费| 欧美性xxxxx极品少妇| 琪琪久久久久日韩精品| 久久久久久久久久久99999| 成人综合婷婷国产精品久久免费| 一色屋精品亚洲香蕉网站| 欧美日韩美女一区二区| 久久69国产一区二区蜜臀| 中文字幕精品一区 | 亚洲va欧美va人人爽| 日韩欧美三级在线| 99久久精品国产精品久久| 亚洲国产精品一区二区www| 日韩色视频在线观看| 91首页免费视频|