12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253 |
- using PaintDotNet.Base;
- using PaintDotNet.Data.Param;
- using PaintDotNet.Processing;
- using System;
- using System.Collections.Generic;
- using System.Windows.Forms;
- namespace PaintDotNet.Menus
- {
- /// <summary>
- /// 图像处理菜单
- /// </summary>
- internal sealed class ImageMenu : PdnMenuItem
- {
- private PdnMenuItem menuImageAdjust;
- private PdnMenuItem menuImageSharpen;
- private PdnMenuItem menuImageSmooth;
- private ToolStripSeparator menuImageSeparator1;
- private PdnMenuItem menuImageEdgeDetection;
- private PdnMenuItem menuImageInterOperation;
- private ToolStripSeparator menuImageSeparator2;
- private PdnMenuItem menuImageShift;
- private PdnMenuItem menuImageStitching;
- private PdnMenuItem menuImageDepthExtension;
- //反色
- private PdnMenuItem menuImageReverseColor;
- //灰度化
- private PdnMenuItem menuImageGrayscale;
- //白平衡
- private PdnMenuItem menuImageWhiteBalance;
- //色彩平衡
- private PdnMenuItem menuImageColorBalance;
- //阴影校正
- private PdnMenuItem menuImageShadingCorrection;
- //色度/饱和度/亮度
- private PdnMenuItem menuImageHSLAdjust;
- //亮度/对比度/伽马值
- private PdnMenuItem menuImageBCGAdjust;
- //图像旋转
- private PdnMenuItem menuImageRotate;
- //描绘
- private PdnMenuItem menuImagePortray;
- //加强轮廓
- private PdnMenuItem menuImageEnhanceContour;
- //虚化蒙版
- private PdnMenuItem menuImageBlurMask;
- //西格玛
- private PdnMenuItem menuImageSigma;
- //各向异性高斯滤波
- private PdnMenuItem menuImageGaussianFiltering;
- //低通滤波
- private PdnMenuItem menuImageLowPassFiltering;
- //中值滤波
- private PdnMenuItem menuImageMedianFiltering;
- //高斯模糊
- private PdnMenuItem menuImageGaussianBlur;
- //双边滤波
- private PdnMenuItem menuImageBilateralFiltering;
- //小波降噪
- private PdnMenuItem menuImageWaveletDenoising;
- //Log
- private PdnMenuItem menuImageLog;
- //Canny
- private PdnMenuItem menuImageCanny;
- //Sobel
- private PdnMenuItem menuImageSobel;
- //Kirsch
- private PdnMenuItem menuImageKirsch;
- //Prewitt
- private PdnMenuItem menuImagePrewitt;
- //Roberts
- private PdnMenuItem menuImageRoberts;
- //Laplace
- private PdnMenuItem menuImageLaplace;
- //增加
- private PdnMenuItem menuImageAddition;
- //减去
- private PdnMenuItem menuImageSubtraction;
- //乘以
- private PdnMenuItem menuImageMultiplication;
- //除以
- private PdnMenuItem menuImageDivision;
- //平均
- private PdnMenuItem menuImageAverage;
- //平方
- private PdnMenuItem menuImageSquare;
- //平方根
- private PdnMenuItem menuImageSquareRoot;
- //对数
- private PdnMenuItem menuImageLogarithm;
- //指数
- private PdnMenuItem menuImageIndex;
- //最大值
- private PdnMenuItem menuImageMax;
- //最小值
- private PdnMenuItem menuImageMin;
- public ImageMenu(int menuId)
- {
- InitializeComponent();
- this.MenuId = menuId;
- }
- private void InitializeComponent()
- {
- this.menuImageAdjust = new PdnMenuItem(ActionType.Adjust);
- this.menuImageSharpen = new PdnMenuItem(ActionType.Sharpen);
- this.menuImageSmooth = new PdnMenuItem(ActionType.Smooth);
- this.menuImageSeparator1 = new ToolStripSeparator();
- this.menuImageEdgeDetection = new PdnMenuItem(ActionType.EdgeDetection);
- this.menuImageInterOperation = new PdnMenuItem(ActionType.InterImageOperation);
- this.menuImageSeparator2 = new ToolStripSeparator();
- this.menuImageShift = new PdnMenuItem(ActionType.ActionImageOffset);
- this.menuImageStitching = new PdnMenuItem(ActionType.ActionImageStitching);
- this.menuImageStitching.AutomaticScript = false;
- this.menuImageDepthExtension = new PdnMenuItem(ActionType.ActionExtendedDepthOfFocus);
- this.menuImageDepthExtension.AutomaticScript = false;
- this.menuImageReverseColor = new PdnMenuItem(ActionType.ActionRevertColor);
- this.menuImageGrayscale = new PdnMenuItem(ActionType.ActionBgr2Gray);
- this.menuImageWhiteBalance = new PdnMenuItem(ActionType.ActionWhiteBalance);
- this.menuImageColorBalance = new PdnMenuItem(ActionType.ActionColorBalance);
- this.menuImageShadingCorrection = new PdnMenuItem(ActionType.ActionShadingCorrection);
- this.menuImageHSLAdjust = new PdnMenuItem(ActionType.ActionHSB);
- this.menuImageBCGAdjust = new PdnMenuItem(ActionType.ActionBCG);
- this.menuImageRotate = new PdnMenuItem(ActionType.ActionImageRotate);
- this.menuImagePortray = new PdnMenuItem(ActionType.ActionPortray);
- this.menuImageEnhanceContour = new PdnMenuItem(ActionType.ActionEnhanceContour);
- this.menuImageBlurMask = new PdnMenuItem(ActionType.ActionBlurMask);
- this.menuImageSigma = new PdnMenuItem(ActionType.Sigma);
- this.menuImageGaussianFiltering = new PdnMenuItem(ActionType.GaussianFiltering);
- this.menuImageLowPassFiltering = new PdnMenuItem(ActionType.LowPassFiltering);
- this.menuImageMedianFiltering = new PdnMenuItem(ActionType.MedianFiltering);
- this.menuImageGaussianBlur = new PdnMenuItem(ActionType.GaussianBlur);
- this.menuImageBilateralFiltering = new PdnMenuItem(ActionType.BilateralFiltering);
- this.menuImageWaveletDenoising = new PdnMenuItem(ActionType.WaveletDenoising);
- this.menuImageLog = new PdnMenuItem(ActionType.Log);
- this.menuImageCanny = new PdnMenuItem(ActionType.Canny);
- this.menuImageSobel = new PdnMenuItem(ActionType.Sobel);
- this.menuImageKirsch = new PdnMenuItem(ActionType.Kirsch);
- this.menuImagePrewitt = new PdnMenuItem(ActionType.Prewitt);
- this.menuImageRoberts = new PdnMenuItem(ActionType.Roberts);
- this.menuImageLaplace = new PdnMenuItem(ActionType.Laplace);
- this.menuImageAddition = new PdnMenuItem(ActionType.ActionImageAddition);
- this.menuImageAddition.AutomaticScript = false;
- this.menuImageSubtraction = new PdnMenuItem(ActionType.ActionImageSubtraction);
- this.menuImageSubtraction.AutomaticScript = false;
- this.menuImageMultiplication = new PdnMenuItem(ActionType.ActionImageMultiplication);
- this.menuImageMultiplication.AutomaticScript = false;
- this.menuImageDivision = new PdnMenuItem(ActionType.ActionImageDivision);
- this.menuImageDivision.AutomaticScript = false;
- this.menuImageAverage = new PdnMenuItem(ActionType.ActionImageAverage);
- this.menuImageAverage.AutomaticScript = false;
- this.menuImageSquare = new PdnMenuItem(ActionType.ActionImageSquare);
- //this.menuImageSquare.AutomaticScript = false;
- this.menuImageSquareRoot = new PdnMenuItem(ActionType.ActionImageSquareBoot);
- //this.menuImageSquareRoot.AutomaticScript = false;
- this.menuImageLogarithm = new PdnMenuItem(ActionType.ActionImageLogarithm);
- //this.menuImageLogarithm.AutomaticScript = false;
- this.menuImageIndex = new PdnMenuItem(ActionType.ActionImageIndex);
- //this.menuImageIndex.AutomaticScript = false;
- this.menuImageMax = new PdnMenuItem(ActionType.ActionImageMax);
- this.menuImageMax.AutomaticScript = false;
- this.menuImageMin = new PdnMenuItem(ActionType.ActionImageMin);
- this.menuImageMin.AutomaticScript = false;
- //
- // ImageMenu
- //
- this.DropDownItems.AddRange(
- new ToolStripItem[]
- {
- this.menuImageAdjust,
- this.menuImageSharpen,
- this.menuImageSmooth,
- this.menuImageSeparator1,
- this.menuImageEdgeDetection,
- this.menuImageInterOperation,
- this.menuImageSeparator2,
- this.menuImageShift,
- this.menuImageStitching,
- this.menuImageDepthExtension
- });
- this.Name = "Menu.Image";
- this.Text = PdnResources.GetString("Menu.Image.Text");
- //
- // 调节
- //
- this.menuImageAdjust.DropDownItems.AddRange(
- new ToolStripItem[]
- {
- this.menuImageReverseColor,
- this.menuImageGrayscale,
- this.menuImageWhiteBalance,
- this.menuImageColorBalance,
- this.menuImageShadingCorrection,
- this.menuImageHSLAdjust,
- this.menuImageBCGAdjust,
- this.menuImageRotate
- });
- //
- // 锐化
- //
- this.menuImageSharpen.DropDownItems.AddRange(
- new ToolStripItem[]
- {
- this.menuImagePortray,
- this.menuImageEnhanceContour,
- this.menuImageBlurMask
- });
- //
- // 平滑
- //
- this.menuImageSmooth.DropDownItems.AddRange(
- new ToolStripItem[]
- {
- this.menuImageSigma,
- this.menuImageGaussianFiltering,
- this.menuImageLowPassFiltering,
- this.menuImageMedianFiltering,
- this.menuImageGaussianBlur,
- this.menuImageBilateralFiltering,
- this.menuImageWaveletDenoising
- });
- //
- // 边缘检测
- //
- this.menuImageEdgeDetection.DropDownItems.AddRange(
- new ToolStripItem[]
- {
- this.menuImageLog,
- this. menuImageCanny,
- this.menuImageSobel,
- this.menuImageKirsch,
- this.menuImagePrewitt,
- this.menuImageRoberts,
- this.menuImageLaplace
- });
- //
- // 图像间操作
- //
- this.menuImageInterOperation.DropDownItems.AddRange(
- new ToolStripItem[]
- {
- this.menuImageAddition,
- this.menuImageSubtraction,
- this.menuImageMultiplication,
- this.menuImageDivision,
- this.menuImageAverage,
- this.menuImageSquare,
- this.menuImageSquareRoot,
- this.menuImageLogarithm,
- this.menuImageIndex,
- this.menuImageMax,
- this.menuImageMin
- });
- //
- // 图像偏移
- //
- this.menuImageShift.Click += new EventHandler(menuImageShift_Click);
- //
- // 图像拼接
- //
- this.menuImageStitching.Click += new EventHandler(menuImageStitching_Click);
- //
- // 景深扩展
- //
- this.menuImageDepthExtension.Click += new EventHandler(MenuImageDepthExtension_Click);
-
- //
- // 以下是子菜单
- //
- //
- // 反色
- //
- this.menuImageReverseColor.Click += new EventHandler(menuImageReverseColor_Click);
- this.menuImageReverseColor.Text = PdnResources.GetString("Menu.Image.ReverseColor.Text");
- this.menuImageReverseColor.Image = PdnResources.GetImageResource("Icons.MenuActionReverseColorIcon.png").Reference;
- //
- // 灰度化
- //
- this.menuImageGrayscale.Click += new EventHandler(menuImageGrayscale_Click);
- this.menuImageGrayscale.Text = PdnResources.GetString("Menu.Image.Grayscale.Text");
- this.menuImageGrayscale.Image = PdnResources.GetImageResource("Icons.MenuActionGrayscaleIcon.png").Reference;
- //
- // 白平衡
- //
- this.menuImageWhiteBalance.Click += new EventHandler(menuImageWhiteBalance_Click);
- this.menuImageWhiteBalance.Text = PdnResources.GetString("Menu.Image.WhiteBalance.Text");
- this.menuImageWhiteBalance.Image = PdnResources.GetImageResource("Icons.MenuActionWhiteBalanceIcon.png").Reference;
- //
- // 色彩平衡
- //
- this.menuImageColorBalance.Click += new EventHandler(menuImageColorBalance_Click);
- this.menuImageColorBalance.Text = PdnResources.GetString("Menu.Image.ColorBalance.Text");
- this.menuImageColorBalance.Image = PdnResources.GetImageResource("Icons.MenuActionColorBalanceIcon.png").Reference;
- //
- // 阴影校正
- //
- this.menuImageShadingCorrection.Click += new EventHandler(MenuImageShadingCorrection_Click);
- this.menuImageShadingCorrection.Text = PdnResources.GetString("Menu.Image.ShadingCorrection.Text");
- this.menuImageShadingCorrection.Image = PdnResources.GetImageResource("Icons.MenuActionShadingCorrectionIcon.png").Reference;
- //
- // 色度/饱和度/亮度
- //
- this.menuImageHSLAdjust.Click += new EventHandler(menuImageHSLAdjust_Click);
- this.menuImageHSLAdjust.Text = PdnResources.GetString("Menu.Image.HSLAdjust.Text");
- this.menuImageHSLAdjust.Image = PdnResources.GetImageResource("Icons.MenuActionHSLAdjustIcon.png").Reference;
- //
- // 亮度/对比度/伽马值
- //
- this.menuImageBCGAdjust.Click += new EventHandler(menuImageBCGAdjust_Click); /*menuImageBCGAdjust_Click*/
- this.menuImageBCGAdjust.Text = PdnResources.GetString("Menu.Image.BCGAdjust.Text");
- this.menuImageBCGAdjust.Image = PdnResources.GetImageResource("Icons.MenuActionBCGAdjustIcon.png").Reference;
- //
- // 图像旋转
- //
- this.menuImageRotate.NeedOpenDialog = true;
- this.menuImageRotate.Click += new EventHandler(menuImageRotate_Click);
- this.menuImageRotate.Text = PdnResources.GetString("Menu.Imagerotation.text");
- this.menuImageRotate.Image = PdnResources.GetImageResource("Icons.MenuImageXuanZhuan.png").Reference;
- //
- // 描绘
- //
- this.menuImagePortray.Click += new EventHandler(menuImagePortray_Click);
- this.menuImagePortray.Text = PdnResources.GetString("Menu.Image.Portray.Text");
- this.menuImagePortray.Image = PdnResources.GetImageResource("Icons.MenuActionPortrayIcon.png").Reference;
- //
- // 加强轮廓
- //
- this.menuImageEnhanceContour.Click += new EventHandler(menuImageEnhanceContour_Click);
- this.menuImageEnhanceContour.Text = PdnResources.GetString("Menu.Image.EnhanceContour.Text");
- this.menuImageEnhanceContour.Image = PdnResources.GetImageResource("Icons.MenuActionEnhanceContourIcon.png").Reference;
- //
- // 虚化蒙版
- //
- this.menuImageBlurMask.Click += new EventHandler(menuImageBlurMask_Click);
- this.menuImageBlurMask.Text = PdnResources.GetString("Menu.Image.BlurMask.Text");
- this.menuImageBlurMask.Image = PdnResources.GetImageResource("Icons.MenuActionBlurMaskIcon.png").Reference;
- //
- // 西格玛
- //
- this.menuImageSigma.Click += new EventHandler(menuImageSigma_Click);
- this.menuImageSigma.Text = PdnResources.GetString("Menu.Image.Sigma.Text");
- this.menuImageSigma.Image = PdnResources.GetImageResource("Icons.MenuActionSigmaIcon.png").Reference;
- //
- // 各向异性高斯滤波
- //
- this.menuImageGaussianFiltering.Click += new EventHandler(menuImageGaussianFiltering_Click);
- this.menuImageGaussianFiltering.Text = PdnResources.GetString("Menu.Image.GaussianFiltering.Text");
- this.menuImageGaussianFiltering.Image = PdnResources.GetImageResource("Icons.MenuActionGaussianFilteringIcon.png").Reference;
- //
- // 低通滤波
- //
- this.menuImageLowPassFiltering.Click += new EventHandler(menuImageLowPassFiltering_Click);
- this.menuImageLowPassFiltering.Text = PdnResources.GetString("Menu.Image.LowPassFiltering.Text");
- this.menuImageLowPassFiltering.Image = PdnResources.GetImageResource("Icons.MenuActionLowPassFilteringIcon.png").Reference;
- //
- // 中值滤波
- //
- this.menuImageMedianFiltering.Click += new EventHandler(menuImageMedianFiltering_Click);
- this.menuImageMedianFiltering.Text = PdnResources.GetString("Menu.Image.MedianFiltering.Text");
- this.menuImageMedianFiltering.Image = PdnResources.GetImageResource("Icons.MenuActionMedianFilteringIcon.png").Reference;
- //
- // 高斯模糊
- //
- this.menuImageGaussianBlur.Click += new EventHandler(menuImageGaussianBlur_Click);
- this.menuImageGaussianBlur.Text = PdnResources.GetString("Menu.Image.GaussianBlur.Text");
- this.menuImageGaussianBlur.Image = PdnResources.GetImageResource("Icons.MenuActionGaussianBlurIcon.png").Reference;
- //
- // 双边滤波
- //
- this.menuImageBilateralFiltering.Click += new EventHandler(menuImageBilateralFiltering_Click);
- this.menuImageBilateralFiltering.Text = PdnResources.GetString("Menu.Image.BilateralFiltering.Text");
- this.menuImageBilateralFiltering.Image = PdnResources.GetImageResource("Icons.MenuActionBilateralFilteringIcon.png").Reference;
- //
- // 小波降噪
- //
- this.menuImageWaveletDenoising.Click += new EventHandler(menuImageWaveletDenoising_Click);
- this.menuImageWaveletDenoising.Text = PdnResources.GetString("Menu.Image.WaveletDenoising.Text");
- this.menuImageWaveletDenoising.Image = PdnResources.GetImageResource("Icons.MenuActionWaveletDenoisingIcon.png").Reference;
- //
- // Log
- //
- this.menuImageLog.Click += new EventHandler(menuImageLog_Click);
- this.menuImageLog.Text = PdnResources.GetString("Menu.Image.Log.Text");
- this.menuImageLog.Image = PdnResources.GetImageResource("Icons.MenuActionLogIcon.png").Reference;
- //
- // Canny
- //
- this.menuImageCanny.Click += new EventHandler(menuImageCanny_Click);
- this.menuImageCanny.Text = PdnResources.GetString("Menu.Image.Canny.Text");
- this.menuImageCanny.Image = PdnResources.GetImageResource("Icons.MenuActionCannyIcon.png").Reference;
- //
- // Sobel
- //
- this.menuImageSobel.Click += new EventHandler(menuImageSobel_Click);
- this.menuImageSobel.Text = PdnResources.GetString("Menu.Image.Sobel.Text");
- this.menuImageSobel.Image = PdnResources.GetImageResource("Icons.MenuActionSobelIcon.png").Reference;
- //
- // Kirsch
- //
- this.menuImageKirsch.Click += new EventHandler(menuImageKirsch_Click);
- this.menuImageKirsch.Text = PdnResources.GetString("Menu.Image.Kirsch.Text");
- this.menuImageKirsch.Image = PdnResources.GetImageResource("Icons.MenuActionKirschIcon.png").Reference;
- //
- // Prewitt
- //
- this.menuImagePrewitt.Click += new EventHandler(menuImagePrewitt_Click);
- this.menuImagePrewitt.Text = PdnResources.GetString("Menu.Image.Prewitt.Text");
- this.menuImagePrewitt.Image = PdnResources.GetImageResource("Icons.MenuActionPrewittIcon.png").Reference;
- //
- // Roberts
- //
- this.menuImageRoberts.Click += new EventHandler(menuImageRoberts_Click);
- this.menuImageRoberts.Text = PdnResources.GetString("Menu.Image.Roberts.Text");
- this.menuImageRoberts.Image = PdnResources.GetImageResource("Icons.MenuActionRobertsIcon.png").Reference;
- //
- // Laplace
- //
- this.menuImageLaplace.Click += new EventHandler(menuImageLaplace_Click);
- this.menuImageLaplace.Text = PdnResources.GetString("Menu.Image.Laplace.Text");
- this.menuImageLaplace.Image = PdnResources.GetImageResource("Icons.MenuActionLaplaceIcon.png").Reference;
- //
- // 加
- //
- this.menuImageAddition.Click += new EventHandler(menuImageAddition_Click);
- this.menuImageAddition.Text = PdnResources.GetString("Menu.Image.Addition.Text");
- this.menuImageAddition.Image = PdnResources.GetImageResource("Icons.MenuActionAdditionIcon.png").Reference;
- //
- // 减
- //
- this.menuImageSubtraction.Click += new EventHandler(menuImageSubtraction_Click);
- this.menuImageSubtraction.Text = PdnResources.GetString("Menu.Image.Subtraction.Text");
- this.menuImageSubtraction.Image = PdnResources.GetImageResource("Icons.MenuActionSubtractionIcon.png").Reference;
- //
- // 乘
- //
- this.menuImageMultiplication.Click += new EventHandler(menuImageMultiplication_Click);
- this.menuImageMultiplication.Text = PdnResources.GetString("Menu.Image.Multiplication.Text");
- this.menuImageMultiplication.Image = PdnResources.GetImageResource("Icons.MenuActionMultiplicationIcon.png").Reference;
- //
- // 除
- //
- this.menuImageDivision.Click += new EventHandler(menuImageDivision_Click);
- this.menuImageDivision.Text = PdnResources.GetString("Menu.Image.Division.Text");
- this.menuImageDivision.Image = PdnResources.GetImageResource("Icons.MenuActionDivisionIcon.png").Reference;
- //
- // 平均
- //
- this.menuImageAverage.Click += new EventHandler(menuImageAverage_Click);
- this.menuImageAverage.Text = PdnResources.GetString("Menu.Image.Average.Text");
- this.menuImageAverage.Image = PdnResources.GetImageResource("Icons.MenuActionAverageIcon.png").Reference;
- //
- // 平方
- //
- this.menuImageSquare.Click += new EventHandler(menuImageSquare_Click);
- this.menuImageSquare.Text = PdnResources.GetString("Menu.Image.Square.Text");
- this.menuImageSquare.Image = PdnResources.GetImageResource("Icons.MenuActionSquareIcon.png").Reference;
- //
- // 平方根
- //
- this.menuImageSquareRoot.Click += new EventHandler(menuImageSquareBoot_Click);
- this.menuImageSquareRoot.Text = PdnResources.GetString("Menu.Image.SquareRoot.Text");
- this.menuImageSquareRoot.Image = PdnResources.GetImageResource("Icons.MenuActionSquareRootIcon.png").Reference;
- //
- // 对数
- //
- this.menuImageLogarithm.Click += new EventHandler(menuImageLogarithm_Click);
- this.menuImageLogarithm.Text = PdnResources.GetString("Menu.Image.Logarithm.Text");
- this.menuImageLogarithm.Image = PdnResources.GetImageResource("Icons.MenuActionLogarithmIcon.png").Reference;
- //
- // 指数
- //
- this.menuImageIndex.Click += new EventHandler(menuImageIndex_Click);
- this.menuImageIndex.Text = PdnResources.GetString("Menu.Image.Index.Text");
- this.menuImageIndex.Image = PdnResources.GetImageResource("Icons.MenuActionIndexIcon.png").Reference;
- //
- // 最大
- //
- this.menuImageMax.Click += new EventHandler(menuImageMax_Click);
- this.menuImageMax.Text = PdnResources.GetString("Menu.Image.Max.Text");
- this.menuImageMax.Image = PdnResources.GetImageResource("Icons.MenuActionMaxIcon.png").Reference;
- //
- // 最小
- //
- this.menuImageMin.Click += new EventHandler(menuImageMin_Click);
- this.menuImageMin.Text = PdnResources.GetString("Menu.Image.Min.Text");
- this.menuImageMin.Image = PdnResources.GetImageResource("Icons.MenuActionMinIcon.png").Reference;
- //
- // 加载菜单的文字和icon
- //
- this.LoadNames(this.Name);
- this.LoadIcons();
- }
- /// <summary>
- /// 反色
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageReverseColor_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionRevertColor, PdnResources.GetString("Menu.ImageProcessing.adjust.Imageprocevert.text")/*;//待修改中文资源-scc备注 20191216*/,(PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 灰度化
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageGrayscale_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionBgr2Gray, PdnResources.GetString("Menu.ImageProcessing.adjust.Imagepaying.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 白平衡
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageWhiteBalance_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionWhiteBalance, PdnResources.GetString("Menu.ImageProcessing.adjust.Imagepitebalance.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 色彩平衡
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageColorBalance_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionColorBalance, PdnResources.GetString("Menu.Imageprocesorbalance.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 阴影校正
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void MenuImageShadingCorrection_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionShadingCorrection, PdnResources.GetString("Menu.Imageprocessingadjustmentshadowcorrection.Text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 色度/饱和度/亮度
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageHSLAdjust_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionHSB, PdnResources.GetString("Menu.processingadjustmentchrom.Text")/*;//待修改中文资源-scc备注 20191212*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 亮度/对比度/伽马值
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageBCGAdjust_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionBCG, PdnResources.GetString("Menu.eprocessinadjustmentbrigh.Text")/*;//待修改中文资源-scc备注 20191212*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 图像旋转
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageRotate_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionImageRotate, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.Adjust.Text") + "-" + PdnResources.GetString("Menu.Imagerotation.text")/*;//待修改中文资源-scc备注 20191212*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
-
- /// <summary>
- /// 描绘
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImagePortray_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionPortray, PdnResources.GetString("Menu.ImageProcessing.Sharpen.Imagscribe.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 加强轮廓
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageEnhanceContour_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionEnhanceContour, PdnResources.GetString("Menu.Imageprochencontours.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 虚化蒙版
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageBlurMask_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionBlurMask, PdnResources.GetString("Menu.Image.Text")+"-"+PdnResources.GetString("Menu.Image.Sharpen.Text")+"-"+PdnResources.GetString("Menu.Image.BlurMask.Text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 西格玛
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageSigma_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Sigma,PdnResources.GetString("Menu.ImageProcessing.smooth.ImageProcgma.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 各向异性高斯滤波
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>F
- private void menuImageGaussianFiltering_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.GaussianFiltering,PdnResources.GetString("Menu.ImageProcessing.smooth.Imagnfiltering.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 低通滤波
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageLowPassFiltering_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.LowPassFiltering,PdnResources.GetString("Menu.Image.Text")+"-"+PdnResources.GetString("Menu.Image.Smooth.Text")+"-"+PdnResources.GetString("Menu.Image.LowPassFiltering.Text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 中值滤波
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageMedianFiltering_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.MedianFiltering, PdnResources.GetString("Menu.ImageProcessing.smooth.Imageprocdianfilter.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 高斯模糊
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageGaussianBlur_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.GaussianBlur, PdnResources.GetString("Menu.ImageProcessing.smooth.ImageProcessianBlur.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 双边滤波
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageBilateralFiltering_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.BilateralFiltering, PdnResources.GetString("Menu.ImageProcessing.smooth.Imageproltering.text")/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 小波降噪
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageWaveletDenoising_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.WaveletDenoising, PdnResources.GetString("Menu.ImageProcessing.smooth.Imageprocessineanfiltering.text")/* 小波降噪;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Log
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageLog_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Log, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Log"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Canny
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageCanny_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Canny, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Canny"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Sobel
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageSobel_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Sobel, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Sobel"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Kirsch
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageKirsch_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Kirsch, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Kirsch"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Prewitt
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImagePrewitt_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Prewitt, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Prewitt"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Roberts
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageRoberts_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Roberts, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Roberts"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// Laplace
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageLaplace_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new BshTransferAdjustDialog(AppWorkspace, ActionType.Laplace, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.EdgeDetection.Text") + "-Laplace"/*;//待修改中文资源-scc备注 20191216*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 加
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageAddition_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageAddition, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageprodd.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 减
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageSubtraction_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageSubtraction, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageprub.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 乘
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageMultiplication_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageMultiplication, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageprocply.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 除
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageDivision_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageDivision, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageproision.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 平均
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageAverage_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageAverage, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageperage.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 平方
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageSquare_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageSquare, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imagepare.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 平方根
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageSquareBoot_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageSquareBoot, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageareroots.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 对数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageLogarithm_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageLogarithm, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageprlog.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 指数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageIndex_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageIndex, PdnResources.GetString("Menu.ImageProcessing.boundarydetection.Imageprodex.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 最大
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageMax_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageMax, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.InterImageOperation.Text") + "-" + PdnResources.GetString("Menu.max.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 最小
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageMin_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null) {
- new InterImageOpDialog(AppWorkspace, ActionType.ActionImageMin, PdnResources.GetString("Menu.Image.Text") + "-" + PdnResources.GetString("Menu.Image.InterImageOperation.Text") + "-" + PdnResources.GetString("Menu.minimum.text")/*;//待修改中文资源-scc备注 20191217*/, (PdnMenuItem)sender).ShowDialog();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 图像偏移
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageShift_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace != null)
- new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionImageOffset, PdnResources.GetString("Menu.Image.Text")+"-"+ PdnResources.GetString("Menu.Image.ImageShift.Text"), (PdnMenuItem)sender).ShowDialog();
- else
- MessageBox.Show(PdnResources.GetString("Menu.Pleaseopenatleastonepicturefirst.Text"));
- }
- /// <summary>
- /// 图像拼接
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void menuImageStitching_Click(object sender, EventArgs e)
- {
- List<List<double>> localxys = new List<List<double>>();
- double[] xs = new double[] { 0, 4, 8 };
- double[] ys = new double[] { 0, 5, 0 };
- double[] zs = new double[] { 8112.3, 7802.525, 8577.95 };
- double[] cals = this.PanelFit(xs, ys, zs);
- double cala = cals[0];
- for (int ix = 0; ix < 9; ix++)
- {
- List<double> localys = new List<double>();
- for (int iy = 0; iy < 6; iy++)
- {
- double z = (-cals[0] * ix - cals[1] * iy - cals[3]) / cals[2];
- localys.Add(z - 7);
- }
- localxys.Add(localys);
- }
- double zva = localxys[0][0];
- //new BshTransferAdjustDialog(AppWorkspace, ActionType.ActionImageStitching, PdnResources.GetString("Menu.Image.Text")+"-"+ PdnResources.GetString("Menu.ImageCollection.ImageStitching.Text")).ShowDialog();
- using (ImageMosaicsDialog imageMosaicsDialog = new ImageMosaicsDialog(this.AppWorkspace))
- {
- imageMosaicsDialog.StartPosition = FormStartPosition.CenterScreen;
- imageMosaicsDialog.ShowDialog();
- }
- if (AppWorkspace.startScriptRecording)
- {
- AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List<Args>());
- }
- }
- /// <summary>
- /// 平面方程拟合,ax+by+cz+d=0,其中a=result[0],b=result[1],c=result[2],d=result[3]
- /// </summary>
- /// <param name="x"></param>
- /// <param name="y"></param>
- /// <param name="z"></param>
- /// <returns></returns>
- private double[] PanelFit(double[] x, double[] y, double[] z)
- {
- double[] result = new double[4];
- int n = x.Length;
- double[,] A = new double[n, 3];
- double[,] E = new double[n, 1];
- for (int i = 0; i < n; i++)
- {
- A[i, 0] = x[i] - z[i];
- A[i, 1] = y[i] - z[i];
- A[i, 2] = 1;
- E[i, 0] = -z[i];
- }
- double[,] AT = MatrixInver(A);
- double[,] ATxA = MatrixMultiply(AT, A);
- double[,] OPPAxTA = MatrixOpp(ATxA);
- double[,] OPPATAxAT = MatrixMultiply(OPPAxTA, AT);
- double[,] DP = MatrixMultiply(OPPATAxAT, E);
- result[0] = DP[0, 0];
- result[1] = DP[1, 0];
- result[2] = 1 - result[0] - result[1];
- result[3] = DP[2, 0];
- return result;
- }
- /// <summary>
- /// 矩阵转置
- /// </summary>
- /// <param name="matrix"></param>
- /// <returns></returns>
- private double[,] MatrixInver(double[,] matrix)
- {
- double[,] result = new double[matrix.GetLength(1), matrix.GetLength(0)];
- for (int i = 0; i < matrix.GetLength(1); i++)
- for (int j = 0; j < matrix.GetLength(0); j++)
- result[i, j] = matrix[j, i];
- return result;
- }
- /// <summary>
- /// 矩阵相乘
- /// </summary>
- /// <param name="matrixA"></param>
- /// <param name="matrixB"></param>
- /// <returns></returns>
- private double[,] MatrixMultiply(double[,] matrixA, double[,] matrixB)
- {
- double[,] result = new double[matrixA.GetLength(0), matrixB.GetLength(1)];
- for (int i = 0; i < matrixA.GetLength(0); i++)
- {
- for (int j = 0; j < matrixB.GetLength(1); j++)
- {
- result[i, j] = 0;
- for (int k = 0; k < matrixB.GetLength(0); k++)
- {
- result[i, j] += matrixA[i, k] * matrixB[k, j];
- }
- }
- }
- return result;
- }
- /// <summary>
- /// 矩阵的逆
- /// </summary>
- /// <param name="matrix"></param>
- /// <returns></returns>
- private double[,] MatrixOpp(double[,] matrix)
- {
- double X = 1 / MatrixSurplus(matrix);
- double[,] matrixB = new double[matrix.GetLength(0), matrix.GetLength(1)];
- double[,] matrixSP = new double[matrix.GetLength(0), matrix.GetLength(1)];
- double[,] matrixAB = new double[matrix.GetLength(0), matrix.GetLength(1)];
- for (int i = 0; i < matrix.GetLength(0); i++)
- for (int j = 0; j < matrix.GetLength(1); j++)
- {
- for (int m = 0; m < matrix.GetLength(0); m++)
- for (int n = 0; n < matrix.GetLength(1); n++)
- matrixB[m, n] = matrix[m, n];
- {
- for (int x = 0; x < matrix.GetLength(1); x++)
- matrixB[i, x] = 0;
- for (int y = 0; y < matrix.GetLength(0); y++)
- matrixB[y, j] = 0;
- matrixB[i, j] = 1;
- matrixSP[i, j] = MatrixSurplus(matrixB);
- matrixAB[i, j] = X * matrixSP[i, j];
- }
- }
- return MatrixInver(matrixAB);
- }
- /// <summary>
- /// 矩阵的行列式的值
- /// </summary>
- /// <param name="A"></param>
- /// <returns></returns>
- public static double MatrixSurplus(double[,] matrix)
- {
- double X = -1;
- double[,] a = matrix;
- int i, j, k, p, r, m, n;
- m = a.GetLength(0);
- n = a.GetLength(1);
- double temp = 1, temp1 = 1, s = 0, s1 = 0;
- if (n == 2)
- {
- for (i = 0; i < m; i++)
- for (j = 0; j < n; j++)
- if ((i + j) % 2 > 0) temp1 *= a[i, j];
- else temp *= a[i, j];
- X = temp - temp1;
- }
- else
- {
- for (k = 0; k < n; k++)
- {
- for (i = 0, j = k; i < m && j < n; i++, j++)
- temp *= a[i, j];
- if (m - i > 0)
- {
- for (p = m - i, r = m - 1; p > 0; p--, r--)
- temp *= a[r, p - 1];
- }
- s += temp;
- temp = 1;
- }
- for (k = n - 1; k >= 0; k--)
- {
- for (i = 0, j = k; i < m && j >= 0; i++, j--)
- temp1 *= a[i, j];
- if (m - i > 0)
- {
- for (p = m - 1, r = i; r < m; p--, r++)
- temp1 *= a[r, p];
- }
- s1 += temp1;
- temp1 = 1;
- }
- X = s - s1;
- }
- return X;
- }
- /// <summary>
- /// 景深拓展
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void MenuImageDepthExtension_Click(object sender, EventArgs e)
- {
- if (AppWorkspace.startScriptRecording)
- {
- AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List<Args>());
- }
- using (ImageDepthExtensionDialog imageDepthExtensionDialog = new ImageDepthExtensionDialog(this.AppWorkspace))
- {
- imageDepthExtensionDialog.StartPosition = FormStartPosition.CenterScreen;
- imageDepthExtensionDialog.ShowDialog();
- }
- }
- protected override void OnDropDownOpening(EventArgs e)
- {
- if (AppWorkspace.ActiveDocumentWorkspace == null || AppWorkspace.ScriptRunning)
- {
- this.menuImageAdjust.Enabled = false;
- this.menuImageSharpen.Enabled = false;
- this.menuImageSmooth.Enabled = false;
- this.menuImageEdgeDetection.Enabled = false;
- this.menuImageInterOperation.Enabled = false;
- this.menuImageShift.Enabled = false;
- }
- else
- {
- this.menuImageAdjust.Enabled = true;
- this.menuImageSharpen.Enabled = true;
- this.menuImageSmooth.Enabled = true;
- this.menuImageEdgeDetection.Enabled = true;
- this.menuImageInterOperation.Enabled = true;
- this.menuImageShift.Enabled = true;
- }
- this.menuImageStitching.Enabled = !AppWorkspace.ScriptRunning;
- this.menuImageDepthExtension.Enabled = !AppWorkspace.ScriptRunning;
- base.OnDropDownOpening(e);
- }
- }
- }
|