⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skeleton.c

📁 图像置乱代码
💻 C
字号:
#include <stdio.h>#include <sys/param.h>#include <string.h>#include <tina/sys.h>#include <tina/sysfuncs.h>#include <tina/math.h>#include <tina/mathfuncs.h>#include <tina/vision.h>#include <tina/visionfuncs.h>#include <tina/file.h>#include <tina/filefuncs.h>#include <tina/file_gen.h>#include <tina/tv.h>#include <tina/tvfuncs.h>#include <tina/toolsfuncs.h>#include <tina/tw_Xfuncs.h>static int stereo_images = 1;/* interactive global variables for access via dialog box */static double sigma = 2.0;static double precision = 0.001;static void     mono_skeleton_proc(void){    Tv             *tv;    Imrect         *im;    tv = mono_tv();    im = mono_image();    if (tv != NULL)	/* get roi from tv */	im = im_subim(im, tv_get_im_roi(tv));    im = imf_grad_h(im);    mono_image_set(im);    tv_flush(tv);}void            stereo_skeleton_proc(void){    Imrect         *left_im=left_image_get(), *right_im=right_image_get();    Tv             *tv;    Imrect         *im;    Imrect         *er;    Vec2            ul, lr;    Imregion       *roi;    Imrect         *stored_left_corners(), *stored_right_corners();    if (left_im == NULL || right_im == NULL)	return;    tv = left_tv();    im = left_image();    if (tv != NULL) /* get roi from tv */       im = im_subim(im, tv_get_im_roi(tv));    im = imf_grad_h(im);    left_image_set(im);    tv_flush(tv);    tv = right_tv();    im = right_image();    if (tv != NULL) /* get roi from tv */        im = im_subim(im, tv_get_im_roi(tv));    im = imf_grad_h(im);    right_image_set(im);    tv_flush(tv);}static void     update_pcam(void){    Camera         *lcam, *rcam;    Parcam         *pcam_get();    lcam = left_camera();    rcam = right_camera();    if (lcam == NULL || rcam == NULL)    {        error("no camera data", non_fatal);        return;    }    pcam_set(parcam_make(lcam, rcam, CAMERA_PHYSICAL));}/**** Image choice callback ****/static void     image_choice_proc(int value){    switch (value)    {      case 0:	stereo_images = 1;	break;      case 1:	stereo_images = 0;	break;    }}/** Pick function callbacks **/static void     mono_pick_proc(Tv_pick(*func) ()){    tv_set_pick(mono_tv(), (*func) ());    tv_set_activity(mono_tv(), PICK);}static void     left_pick_proc( Tv_pick(*func) ()){    tv_set_pick(left_tv(), (*func) ());    tv_set_activity(left_tv(), PICK);}static void     right_pick_proc(Tv_pick(*func) ()){    tv_set_pick(right_tv(), (*func) ());    tv_set_activity(right_tv(), PICK);}/** Mouse function callbacks **/static void     mono_mouse_proc(Tv_mouse(*func) ()){    tv_set_mouse(mono_tv(), (*func) ());    tv_set_activity(mono_tv(), MOUSE);}static void     left_mouse_proc(Tv_mouse(*func) ()){    update_pcam();    tv_set_mouse(left_tv(), (*func) ());    tv_set_activity(left_tv(), MOUSE);}static void     right_mouse_proc(Tv_mouse(*func) ()){    update_pcam();    tv_set_mouse(right_tv(), (*func) ());    tv_set_activity(right_tv(), MOUSE);}/*** Paramter dialog callbacks ***/static void     skeleton_param_dialog(void){    static void *dialog = NULL;    if (dialog)    {	tw_show_dialog(dialog);	return;    }    dialog = tw_dialog("Skeleton Parameters");    tw_fglobal("sigma   :", &sigma, 20);    tw_newrow();    tw_fglobal("precision :", &precision, 20);    tw_end_dialog();}/********** Tool creation **********/void            skeleton_tool(int x, int y){    static void *tool = NULL;    if (tool)    {	tw_show_tool(tool);	return;    }    tool = (void *)tw_tool("Skeleton Tool", x, y);    tw_menubar("Pick: ",	"mono",	"null", mono_pick_proc, null_pick,	NULL,	"left",	"null", left_pick_proc, null_pick,	NULL,	"right",	"null", right_pick_proc, null_pick,	NULL,	NULL);    tw_label("          ");    tw_help_button("skeleton");    tw_newrow();    tw_menubar("Mouse:",	"mono",	"null", mono_mouse_proc, null_mouse,	NULL,	"left",	"null", left_mouse_proc, null_mouse,	"epi", left_mouse_proc, left_epi_mouse,	"rast", left_mouse_proc, left_raster_mouse,	NULL,	"right",	"null", right_mouse_proc, null_mouse,	"epi", right_mouse_proc, right_epi_mouse,	"rast", right_mouse_proc, right_raster_mouse,	NULL,	NULL);    tw_newrow();    tw_choice("Image Select:",	image_choice_proc, 0, "stereo images", "mono image", NULL);    tw_newrow();    tw_button("mono", mono_skeleton_proc, NULL);    tw_button("stereo", stereo_skeleton_proc, NULL);    tw_newrow();    tw_button("Skeleton Params", skeleton_param_dialog, NULL);    tw_end_tool();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -