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

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

?? project2.cpp

?? 圖像拼接框架源碼
?? CPP
字號:
///////////////////////////////////////////////////////////////////////////
//
// NAME
//  Project2.cpp -- command-line (shell) interface to project 2 code
//
// SYNOPSIS
//  Project2 sphrWarp input.tga output.tga f [k1 k2]
//  Project2 alignPair input1.f input2.f nRANSAC RANSACthresh [sift]
//  Project2 blendPairs pairlist.txt outfile.tga blendWidth
//  Project2 script script.cmd
//
// PARAMTERS
//  input.tga       input image
//  output.tga      output image
//
//  f               focal length in pixels
//  k1, k2          radial distortion parameters
//
//  input*.f        input feature set
//
//  nRANSAC         number of RANSAC iterations
//  RANSACthresh    RANSAC distance threshold for inliers
//  sift            the word "sift"
//
//  pairlist.txt    file of image pair names and relative translations
//                  this is usually the concatenation of outputs from alignPair
//
//  blendWidth		width of the horizontal blending function
//
//  script.cmd      script file (command line file)
//
// DESCRIPTION
//  This file contains a set of simple command line processes from which
//  you can build a simple automatic cylindrical stitching application.
//
//  Use the programs here to perform a series of operations such as:
//  1. warp all of the images into spherical coordinate (and undo radial distortion)
//  2. align pairs of images using a feature matcher
//  3. read in all of the images and perform pairwise blends
//     to obtain a final (rectified and trimmed) mosaic
//
// TIPS
//  To become familiar with this code, single-step through a couple of
//  examples.  Also, if you are running inside the debugger, place
//  a breakpoint inside the catch statement and at the last statement
//  in main() so you can see the error message before the program exits.
//
// SEE ALSO
//  Image.h             basic image class documentation
//
// (modified for CSE576 Spring 2005)
///////////////////////////////////////////////////////////////////////////

#include "ImageLib/ImageLib.h"
#include "WarpSpherical.h"
#include "FeatureAlign.h"
#include "BlendImages.h"

int main(int argc, const char *argv[]);     // forward declaration

int SphrWarp(int argc, const char *argv[])
{
    // Warp the input image to correct for radial distortion and/or map to spherical coordinates
    if (argc < 5)
    {
        printf("usage: %s input.tga output.tga f [k1 k2]\n", argv[1]);
        return -1;
    }
    const char *infile  = argv[2];
    const char *outfile = argv[3];
    float f             = (float) atof(argv[4]);
    float k1            = (argc > 5) ? (float) atof(argv[5]) : 0.0f;
    float k2            = (argc > 6) ? (float) atof(argv[6]) : 0.0f;

    CByteImage src, dst;
    ReadFile(src, infile);
    if (src.Shape().nBands != 4)
        src = ConvertToRGBA(src);
    CShape sh = src.Shape();
    CFloatImage uv = WarpSphericalField(sh, sh, f, k1, k2, CTransform3x3());
    WarpLocal(src, dst, uv, false, eWarpInterpLinear);
    WriteFile(dst, outfile);
    return 0;
}

int AlignPair(int argc, const char *argv[])
{
    // Align two images using feature matching
    if (argc < 6)
    {
        printf("usage: %s input1.f input2.f nRANSAC RANSACthresh [sift]\n", argv[1]);
        return -1;
    }
    const char *infile1 = argv[2];
    const char *infile2 = argv[3];
	int nRANSAC         = atoi(argv[4]);
	double RANSACthresh = atof(argv[5]);

	FeatureSet f1, f2;

	// Read in the feature sets
	if ((argc >= 7) && (strcmp(argv[6], "sift") == 0)) {
		f1.load_sift(infile1);
		f2.load_sift(infile2);
	}
	else {
		f1.load(infile1);
		f2.load(infile2);
	}

	vector<FeatureMatch> matches;
	CTransform3x3 M;

	// *** BEGIN TODO ***
	// call your feature matching routine and store the result
	// in matches


	// *** END TODO ***

	// Perform the alignment.
	alignPair(f1, f2, matches, eTranslate, 0.0f, nRANSAC, RANSACthresh, M);

    // Print out the result
	if ((argc >= 7) && (strcmp(argv[6], "sift") == 0)) {
		printf("%.2f %.2f\n", M[0][2], -M[1][2]);
	}
	else {
		printf("%.2f %.2f\n", M[0][2], M[1][2]);
	}

    return 0;
}

int BlendPairs(int argc, const char *argv[])
{
    // Blend a sequence of images given the pairwise transformations
    if (argc < 5)
    {
        printf("usage: %s pairlist.txt outimg.tga blendWidth", argv[1]);
        return -1;
    }
    const char *pairlist= argv[2];
    const char *outfile = argv[3];
    float blendWidth    = (float) atof(argv[4]);

    // Open the list of image pairs
    FILE *stream = fopen(pairlist, "r");
    if (stream == 0)
        throw CError("%s: could not open the file %s", argv[1], pairlist);

    // Construct the list of images and translations
    CImagePositionV ipList;
    char line[1024], infile1[1024], infile2[1024];
    float rel_t[2];
    int n;
    for (n = 0; fgets(line, 1024, stream); n++)
    {
        // Compute the position from the PREVIOUS displacement
        CImagePosition ip;
        for (int k = 0; k < 2; k++)
            ip.position[k] = (n > 0) ? ipList[n-1].position[k] - rel_t[k] : 0.0f;

        // Read the line and push the image onto the list
        if (sscanf(line, "%s %s %f %f", infile1, infile2,
                   &rel_t[0], &rel_t[1]) != 4)
            throw CError("%s: error reading %s", argv[1], pairlist);
        ReadFile(ip.img, infile1);
        ipList.push_back(ip);
    }

    // Read in the last image
    CImagePosition ip;
    for (int k = 0; k < 2; k++)
        ip.position[k] = ipList[n-1].position[k] - rel_t[k];
    ReadFile(ip.img, infile2);
    ipList.push_back(ip);
    fclose(stream);

    CByteImage result = BlendImages(ipList, blendWidth);
    WriteFile(result, outfile);
    return 0;
}

int Script(int argc, const char *argv[])
{
    // Read a series of commands from a script file
    //  (an alternative to a shell-level command file)
    if (argc < 3)
    {
        printf("usage: %s script.cmd\n", argv[1]);
        return -1;
    }
    FILE *stream = fopen(argv[2], "r");
    if (stream == 0)
        throw CError("Could not open %s", argv[2]);

    // Process each command line
    char line[1024];
    while (fgets(line, 1024, stream))
    {
        fprintf(stderr, line);
        if (line[0] == '/' && line[1] == '/')
            continue;   // skip the comment line
        char *ptr = line;
        char *argv2[256];
        int argc2;
        for (argc2 = 0; argc2 < 256 && *ptr; argc2++)
        {
            while (*ptr && isspace(*ptr)) ptr++;
            argv2[argc2] = ptr;
            while (*ptr && !isspace(*ptr)) ptr++;
            if (*ptr)
                *ptr++ = 0;     // null terminate the argument
        }
        if (argc2 < 2)
            continue;

        // Call the dispatch routine
        int code = main(argc2, (const char **) argv2);
        if (code)
            return code;
    }
    fclose(stream);
    return 0;
}

int main(int argc, const char *argv[])
{
    try
    {
        // Branch to processing code based on first argument
        if (argc > 1 && strcmp(argv[1], "sphrWarp") == 0)
            return SphrWarp(argc, argv);
        else if (argc > 1 && strcmp(argv[1], "alignPair") == 0)
            return AlignPair(argc, argv);
        else if (argc > 1 && strcmp(argv[1], "blendPairs") == 0)
            return BlendPairs(argc, argv);
        else if (argc > 1 && strcmp(argv[1], "script") == 0)
            return Script(argc, argv);
		else {
			printf("usage: \n");
	        printf("	%s sphrWarp input.tga output.tga f [k1 k2]\n", argv[0]);
			printf("	%s alignPair input1.f input2.f nRANSAC RANSACthresh [sift]\n", argv[0]);
			printf("	%s blendPairs pairlist.txt outimg.tga blendWidth\n", argv[0]);
			printf("	%s script script.cmd\n", argv[0]);
		}
    }
    catch (CError &err) {
        printf(err.message);
        return -1;
    }
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费观看视频| 亚洲国产成人精品视频| 亚洲精品国产a| 美脚の诱脚舐め脚责91| 99re这里都是精品| 久久久久久久久99精品| 性感美女久久精品| 91蜜桃网址入口| 久久久精品国产99久久精品芒果 | www.日本不卡| 国产亚洲成aⅴ人片在线观看| 日韩和的一区二区| 在线这里只有精品| 亚洲人午夜精品天堂一二香蕉| 激情都市一区二区| 日韩一区二区影院| 五月天久久比比资源色| 欧美在线你懂的| 亚洲黄色在线视频| 色综合久久天天综合网| 国产精品国产三级国产普通话99 | 国产精品一卡二卡在线观看| 日韩一级高清毛片| 免费精品99久久国产综合精品| 欧美丝袜丝交足nylons图片| 一区二区三区资源| 色哟哟国产精品| 亚洲已满18点击进入久久| 在线观看网站黄不卡| 曰韩精品一区二区| 欧美丝袜第三区| 日韩av午夜在线观看| 日韩一区二区三区高清免费看看| 日韩1区2区3区| 日韩欧美黄色影院| 国产精品一区不卡| 国产精品水嫩水嫩| 色婷婷综合久久久久中文| 亚洲精品菠萝久久久久久久| 色94色欧美sute亚洲线路二| 亚洲尤物视频在线| 91精品国产91久久久久久一区二区 | 久久这里只精品最新地址| 国产精品主播直播| 1000精品久久久久久久久| 91麻豆6部合集magnet| 亚洲黄色尤物视频| 欧美一三区三区四区免费在线看 | 国产精品久久国产精麻豆99网站| 不卡av电影在线播放| 亚洲精品美腿丝袜| 91精品国产综合久久婷婷香蕉| 七七婷婷婷婷精品国产| 国产午夜精品理论片a级大结局| 丁香亚洲综合激情啪啪综合| 亚洲欧美日韩一区二区三区在线观看| 91精品福利视频| 日韩激情av在线| 日本一区二区三区在线观看| 色婷婷av一区二区三区大白胸| 日本大胆欧美人术艺术动态| 久久九九全国免费| 色婷婷av久久久久久久| 久久精品av麻豆的观看方式| 中文字幕中文字幕在线一区| 欧美精三区欧美精三区| 国产很黄免费观看久久| 亚洲最新在线观看| 2023国产精品| 欧美日韩亚洲高清一区二区| 国产 日韩 欧美大片| 亚洲一区二区三区免费视频| 久久久综合九色合综国产精品| 91视频国产观看| 精东粉嫩av免费一区二区三区| 亚洲视频在线一区二区| 日韩欧美高清dvd碟片| 色婷婷激情久久| 成人免费高清视频| 蜜桃av一区二区| 亚洲国产欧美日韩另类综合 | 日韩精品中午字幕| 91免费在线播放| 国产在线精品免费| 琪琪久久久久日韩精品| 亚洲欧美一区二区三区国产精品 | 欧美少妇bbb| 94-欧美-setu| 国产精品99精品久久免费| 日本va欧美va精品发布| 一区二区欧美视频| 1024成人网| 国产精品美女久久久久aⅴ| 久久在线观看免费| 欧美第一区第二区| 91超碰这里只有精品国产| 欧美午夜不卡视频| 色综合久久久久网| 91亚洲永久精品| www.成人网.com| 不卡一二三区首页| 成人美女在线观看| 成人开心网精品视频| 国产剧情在线观看一区二区| 久久99国产精品久久99| 麻豆中文一区二区| 蜜臀久久99精品久久久久宅男 | 这里只有精品99re| 欧美主播一区二区三区| 色婷婷综合激情| 欧美在线999| 欧美三级一区二区| 欧美在线不卡视频| 欧美精品第1页| 欧美一级一级性生活免费录像| 欧美日韩情趣电影| 欧美日韩国产小视频| 欧美日韩精品一区二区三区蜜桃| 欧美午夜一区二区| 欧美美女喷水视频| 日韩一区二区三区高清免费看看| 欧美一区二区视频在线观看 | 欧美日产国产精品| 6080午夜不卡| 久久伊99综合婷婷久久伊| 国产婷婷色一区二区三区在线| 国产婷婷精品av在线| 国产精品色哟哟| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲色图视频免费播放| 亚洲成人一区二区在线观看| 日本vs亚洲vs韩国一区三区二区| 精彩视频一区二区| 成人高清av在线| 欧美天堂亚洲电影院在线播放| 7777精品伊人久久久大香线蕉的 | 婷婷综合另类小说色区| 免费视频一区二区| 国产高清不卡二三区| 99久久精品国产毛片| 91成人国产精品| 欧美一级专区免费大片| 久久精品欧美一区二区三区麻豆| 国产精品久久三区| 奇米影视7777精品一区二区| 国产成人精品一区二区三区网站观看 | 美国毛片一区二区| 成人国产在线观看| 91精品国产入口| 综合欧美亚洲日本| 日产国产欧美视频一区精品| 国产91在线观看| 正在播放一区二区| 日韩美女精品在线| 寂寞少妇一区二区三区| 色久综合一二码| 26uuu亚洲综合色| 亚洲在线观看免费| 成人午夜免费视频| 日韩午夜小视频| 一区二区在线观看免费| 激情深爱一区二区| 欧美三级中文字幕| 国产精品国产三级国产a| 免费观看在线综合| 在线亚洲一区观看| 国产欧美一区二区三区鸳鸯浴 | 国产成人综合自拍| 4hu四虎永久在线影院成人| 国产精品乱码一区二区三区软件 | 成人不卡免费av| 日韩欧美123| 石原莉奈一区二区三区在线观看| 成人黄色小视频在线观看| 日韩免费一区二区三区在线播放| 一区二区三区在线免费| 成人小视频在线| 精品国产免费视频| 麻豆精品在线看| 欧美日韩成人在线一区| 亚洲综合视频网| 色综合网色综合| 一区免费观看视频| 国产精品一区二区免费不卡| 日韩美一区二区三区| 午夜精品久久久久久久久久久| 91浏览器入口在线观看| 综合久久国产九一剧情麻豆| 激情综合亚洲精品| 欧美变态tickling挠脚心| 日韩精品一二三四| 欧美一区二区三区视频免费播放 | 亚洲色图欧洲色图| 99国产精品久久久久久久久久 | 亚洲国产激情av| 国产经典欧美精品| 国产欧美日韩精品a在线观看| 国产精品亚洲综合一区在线观看| 欧美精品一区二区三区在线播放| 久久国产精品99久久人人澡|