www.pudn.com > imgproc.zip > PROCSUBS.C
#include#include #include #include //#include #include #include #include "testlib.h" #include "message1.h" #include "message2.h" extern imagedes img; extern BOOL _autoshow; extern imagedes dup; extern BOOL _undo; extern BOOL _beep; #define tstbeeper(a) if(_beep)beeper(a) //void color_merge(imagedes * img); //void test_bed(imagedes * img); //void merge_test(imagedes * img); int callback2(int mess) { char *mes[10]; mes[0] = "# Image Process "; mes[1] = " "; mes[3] = " "; mes[4] = "@ Ok "; mes[5] = 0; switch(mess) { case MENUINIT: break; case MENUCLOSE: return 0; case MENUREPAINT: if(img.load) { if(img.imagetype != Grey) reset_menu_status(idmsaturation, menu_grey); else set_menu_status(idmsaturation, menu_grey); if(img.imagetype != Color256) { reset_menu_status(idmfilter, menu_grey); reset_menu_status(idmedge, menu_grey); reset_menu_status(idmspecial, menu_grey); reset_menu_status(idmbinary, menu_grey); reset_menu_status(idmhistoline, menu_grey); reset_menu_status(idmhistobright, menu_grey); } else { set_menu_status(idmfilter, menu_grey); set_menu_status(idmedge, menu_grey); set_menu_status(idmspecial, menu_grey); set_menu_status(idmbinary, menu_grey); set_menu_status(idmhistoline, menu_grey); set_menu_status(idmhistobright, menu_grey); } } return menu_repaint; case idmsharpen: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_sharpen(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do sharpen !"; dialogbox(mes); } menu_busy(0); break; case idmgsharpen: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_gentlesharpen(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do gental sharpen !"; dialogbox(mes); } menu_busy(0); break; case idmlowpass: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_lowpass(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do low pass filtering !"; dialogbox(mes); } menu_busy(0); break; case idmsobel: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_sobel(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do Sobel filtering !"; dialogbox(mes); } menu_busy(0); break; case idmmedian: { int t=getnumber("Median filter size (n*2+1) [1-20]:"); if(t < 1 || t > 20) { tstbeeper(1); mes[2] = "* Value must between 1 to 20! "; dialogbox(mes); break; } menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_median(img, t)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do median filtering !"; dialogbox(mes); } menu_busy(0); break; } case idmmajor: { int t=getnumber("Majority fileter size (n*2+1) [1-20]:"); if(t < 1 || t > 20) { tstbeeper(1); mes[2] = "* Value must between 1 to 20! "; dialogbox(mes); break; } menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_majority(img, t)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do majority filtering !"; dialogbox(mes); } menu_busy(0); break; } case idmnegtive: menu_busy(999); if(_undo) img_newcopy(&dup, img); image_negative(img); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; case idmhistoline: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_histolinearize(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do histogram linearizing !"; dialogbox(mes); } menu_busy(0); break; case idmhistobright: menu_busy(999); if(_undo) img_newcopy(&dup, img); image_histobrighten(img); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; case idmcontrast: menu_busy(999); if(_undo) img_newcopy(&dup, img); image_expandcontrast(img, 16, 240); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; case idmsaturation: { int t=getnumber("Saturation alpha [-256 to 256]:"); if(t < -256 || t > 256) { tstbeeper(1); mes[2] = "* Value must between -256 to 256! "; dialogbox(mes); break; } menu_busy(999); if(_undo) img_newcopy(&dup, img); image_saturation(img, t); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; } case idmthresh: { int t = getnumber("Input a threshold (0-255):"); if(t<0 || t>255) { tstbeeper(1); mes[2] = "* Value must between 0-255! "; dialogbox(mes); break; } menu_busy(999); if(_undo) img_newcopy(&dup, img); image_kodalithprocess(img, t); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; } case idmmosiac: { int t = getnumber("Input mosiac size (2--63):"); if(t<2 || t>63) { tstbeeper(1); mes[2] = "* Value must between 2--63! "; dialogbox(mes); break; } menu_busy(999); if(_undo) img_newcopy(&dup, img); image_mosiac(img, t); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; } case idmquantiz: { int t = getnumber("Input quantization level (2--128):"); if(t<2 || t>128) { tstbeeper(1); mes[2] = "* Value must between 2--128! "; dialogbox(mes); break; } menu_busy(999); if(_undo) img_newcopy(&dup, img); image_posterize(img, t); tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); menu_busy(0); break; } case idmtraceart: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_trace_art(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do art tracing !"; dialogbox(mes); } menu_busy(0); break; case idmshrink: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_shrink(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do area shrink !"; dialogbox(mes); } menu_busy(0); break; case idmexpand: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_expand(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do area expand !"; dialogbox(mes); } menu_busy(0); break; case idmthin: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_thinning(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge thinning !"; dialogbox(mes); } menu_busy(0); break; case idmtrace4: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_bin_trace4(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge trace !"; dialogbox(mes); } menu_busy(0); break; case idmtrace8: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_bin_trace8(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge trace !"; dialogbox(mes); } menu_busy(0); break; case idmdenoise: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_denoise(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do noise reduction !"; dialogbox(mes); } menu_busy(0); break; case idmedge1: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_testedge1(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge detection !"; dialogbox(mes); } menu_busy(0); break; case idmedge2: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_testedge2(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge detection !"; dialogbox(mes); } menu_busy(0); break; case idmedge3: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_testedge3(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge detection !"; dialogbox(mes); } menu_busy(0); break; case idmedgedog: menu_busy(999); if(_undo) img_newcopy(&dup, img); if(image_DOGedge(img)) { tstbeeper(2); if(_autoshow) raise_message(idmdisplaya); } else { tstbeeper(3); mes[2] = "* Failed to do edge detection !"; dialogbox(mes); } menu_busy(0); break; } return(close_caller_menu); }