找传奇、传世资源到传世资源站!

C#联合halcon实现鼠标滚轮事件

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

可以通过鼠标滚轮对halcon窗口进行滑动放大
适合所有版本的HALCONfrom clipboard
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using HalconDotNet;namespace image_processing{ public partial class Form1 : Form { private int current_beginRow, current_beginCol, current_endRow, current_endCol; private HalconWindow wch = new HalconWindow(); string path;//存储图片路径 HImage hImage = new HImage(); HObject image, gray_image, threshold_image, bin_image;//原图、灰度图、二值图 public Form1() { InitializeComponent(); } /**************************************************************************/ /**********************加载图片********************************************/ /**************************************************************************/ private void button2_Click(object sender, EventArgs e) { try { OpenFileDialog file = new OpenFileDialog(); //file.Filter = "|*.bmp;*.png;*.jpg"; file.Filter = "BMP文件(*.bmp)|*bmp|PNG文件(*.png)|*png|JPG文件(*.jpg)|*jpg|所有文件(*.*)|*.*||"; if (file.ShowDialog() == DialogResult.OK) { path = file.FileName; HOperatorSet.ReadImage(out image, path); wch.DispImageFit(image, hWindowControl1); } } catch (Exception) { throw; } } /**************************************************************************/ /**********************清空窗口********************************************/ /**************************************************************************/ private void btnClearWindow_Click(object sender, EventArgs e) { hWindowControl1.HalconWindow.ClearWindow(); image = null; } /**************************************************************************/ /**********************鼠标滚轮/按钮 缩放图片大小**************************/ /**************************************************************************/ private void hWindowControl1_HMouseWheel(object sender, HMouseEventArgs e) { HTuple mode = e.Delta; int button_state; double mouse_post_row, mouse_pose_col; hWindowControl1.HalconWindow.GetMpositionSubPix(out mouse_post_row, out mouse_pose_col, out button_state); wch.DispImageZoom(image, hWindowControl1, mode, mouse_post_row, mouse_pose_col); } private void btnZoomIn_Click(object sender, EventArgs e) { HTuple mode = 1; double mouse_post_row, mouse_pose_col; hWindowControl1 .HalconWindow.GetPart(out current_beginRow, out current_beginCol, out current_endRow, out current_endCol); mouse_post_row = (current_endRow current_beginRow) / 2; mouse_pose_col = (current_endCol current_beginCol) / 2; wch.DispImageZoom(image, hWindowControl1, mode, mouse_post_row, mouse_pose_col); } private void btnZoomOut_Click(object sender, EventArgs e) { HTuple mode = -1; double mouse_post_row, mouse_pose_col; hWindowControl1.HalconWindow.GetPart(out current_beginRow, out current_beginCol, out current_endRow, out current_endCol); mouse_post_row = (current_endRow current_beginRow) / 2; mouse_pose_col = (current_endCol current_beginCol) / 2; wch.DispImageZoom(image, hWindowControl1, mode, mouse_post_row, mouse_pose_col); } private void btnFitWindow_Click(object sender, EventArgs e) { wch.DispImageFit(image, hWindowControl1); } /**************************************************************************/ /**********************鼠标获取图片当前坐标、灰度值************************/ /**************************************************************************/ private void hWindowControl1_HMouseMove(object sender, HMouseEventArgs e) { if (image != null) { HTuple row, col, grayValue, imageWidth, imageHeight; int button_state; double mouse_post_row, mouse_pose_col; hWindowControl1.HalconWindow.GetMpositionSubPix(out mouse_post_row, out mouse_pose_col, out button_state); row = mouse_post_row; col = mouse_pose_col; HOperatorSet.GetImageSize(image, out imageWidth, out imageHeight); if (col > 0 && row > 0 && col < imageWidth && row < imageHeight) { HOperatorSet.GetGrayval(image, row, col, out grayValue); } else { grayValue = 0; } textBox1.Text = mouse_pose_col.ToString(); textBox2.Text = mouse_post_row.ToString(); textBox3.Text = grayValue.ToString(); } else { textBox1.Text = null; textBox2.Text = null; textBox3.Text = null; } } private void btnToGray_Click(object sender, EventArgs e) { if (image != null) { HOperatorSet.Rgb1ToGray(image, out gray_image); wch.DispImageFit(gray_image, hWindowControl1); } } private void btnThreshold_Click(object sender, EventArgs e) { if (gray_image != null) { int Threshold = tBarBin_threshold.Value; HOperatorSet.Threshold(gray_image, out threshold_image, 0, Threshold); HTuple width, height; HOperatorSet.GetImageSize(image, out width, out height); HOperatorSet.RegionToBin(threshold_image, out bin_image, 0, 255, width, height); HOperatorSet.DispObj(bin_image, hWindowControl1.HalconWindow); } } }}

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复