Halcon与C#联合开发——1.读取图片、图像二值化

在vs中引入halcon控件

在这里插入图片描述
修改目标平台为 x64
在这里插入图片描述

拖出三个控件

在这里插入图片描述

代码展示

using System;
using System.Windows.Forms;
//引用支持halcon的命名空间 
using HalconDotNet;namespace _1.HalconDisplay {public partial class Form1 : Form {// HObject 是Halcon库中表示图像和其他图形对象的类。在这里,声明了几个图像对象HObject ho_Image, ho_Regions, ho_ConnectedRegions, ho_SeletedRegions;// HTuple 则是Halcon库中用来存储元组(tuple)的类,它可以用来存储各种类型的数据。在这里,声明了几个用来存储图像宽度、高度和窗口句柄的变量。HTuple hy_Width = null, hy_Height = null, hy_WindowHandle = null;public Form1() {InitializeComponent();}// 运行按钮private void btnRun_Click(object sender, EventArgs e) {// HOperatorSet 是Halcon库中的一个操作符集合,包含了大量的图像处理函数和操作符。// GenEmptyObj 用于生成一个空的图像对象。HOperatorSet.GenEmptyObj(out ho_Image);HOperatorSet.GenEmptyObj(out ho_Regions);HOperatorSet.GenEmptyObj(out ho_ConnectedRegions);HOperatorSet.GenEmptyObj(out ho_SeletedRegions);//检测窗口是否打开// HDevWindowStack 是用于管理Halcon显示窗口的堆栈// IsOpen():检查当前是否有Halcon显示窗口处于打开状态if (HDevWindowStack.IsOpen()) {// Pop() 从堆栈中弹出(移除)最顶部的窗口,并返回对应的窗口句柄。HOperatorSet.CloseWindow(HDevWindowStack.Pop());}// Dispose() 释放对象占用的资源ho_Image.Dispose();//ReadImage 读取图像HOperatorSet.ReadImage(out ho_Image, "printer_chip/printer_chip_01");// GetImageSize 获取图像大小HOperatorSet.GetImageSize(ho_Image, out hy_Width, out hy_Height);// SetWindowAttr() 设置Halcon显示窗口的属性HOperatorSet.SetWindowAttr("background_color", "blue");HOperatorSet.OpenWindow(0, 0, hWindowControl1.Width, hWindowControl1.Height, hWindowControl1.HalconWindow, "visible", "", out hy_WindowHandle);HDevWindowStack.Push(hy_WindowHandle);//显示图像if (HDevWindowStack.IsOpen()) {// DispObj 是Halcon库中用于在交互式开发环境中显示图像对象的函数。// HDevWindowStack.GetActive() 获取当前活动的Halcon显示窗口HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());}}// 图像二值化private void btn_Threshold_Click(object sender, EventArgs e) {ho_Regions.Dispose();//二值化HOperatorSet.Threshold(ho_Image, out ho_Regions, 128, 255);ho_ConnectedRegions.Dispose();//连通预处理HOperatorSet.Connection(ho_Regions, out ho_ConnectedRegions);//特征筛选ho_SeletedRegions.Dispose();HOperatorSet.SelectShape(ho_ConnectedRegions, out ho_SeletedRegions, "area", "and", 28084.7, 33809.1);if (HDevWindowStack.IsOpen()) {HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());}//显示筛选后的区域if (HDevWindowStack.IsOpen()) {HOperatorSet.SetColor(HDevWindowStack.GetActive(), "green");HOperatorSet.DispObj(ho_SeletedRegions, HDevWindowStack.GetActive());}ho_Image.Dispose();ho_Regions.Dispose();}}
}

结果

点击运行按钮可以加载出图片

在这里插入图片描述

点击二值化按钮可以将该图片进行二值化处理

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/287898.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue+Mysql的超市进销存系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

深度学习:基于PyTorch的模型解释工具Captum

深度学习:基于PyTorch的模型解释工具Captum 引言简介示例安装解释模型的预测解释文本模型情绪分析问答 解释视觉模型特征分析特征消融鲁棒性 解释多模态模型 引言 当我们训练神经网络模型时,我们通常只关注模型的整体性能,例如准确率或损失函…

AWS EC2设置root登录

在使用亚马逊的服务器时,官方默认是使用密钥登录,跟国内的云服务器差别较大,本文记录下,如何开放AWS EC2的root登录。 一、通过网页版或者XShell登录服务器 这里略过 二、设置root账户密码 # 切换 root sudo -i # 设置或修改密…

考研数学|《1800》《1000》《880》《660》最佳搭配使用方法

直接说结论:基础不好先做1800、强化之前660,强化可选880/1000题。 首先,传统习题册存在的一个问题是题量较大,但难度波动较大。《汤家凤1800》和《张宇1000》题量庞大,但有些题目难度不够平衡,有些过于简单…

【开发篇】六、查询大量数据导致内存溢出

文章目录 1、溢出场景2、快照文件分析3、本地环境复现4、结论5、解决思路 记录一个问题,工作中有个数据处理服务OOM,查了下镜像的dockerfile,发现JVM参数如下。很明显,一个数据服务,里面经手大量的数据对象&#xff0c…

ArcGIS二次开发(一)——搭建开发环境以及第一个简单的ArcGIS Engine 程序

Arcgis10.2、Arcgis Engine10.2与Microsoft Visual Studio 2012的版本进行安装 1、推荐教程与安装包2、安装顺序3、安装成功测试VS新建项目可以创建ArcGIS项目,并且在VS中拖拽ArcGIS工具 4、搭建第一个简单的ArcGIS Engine 程序 ArcEngine和VS版本是有对应的&#x…

【SpringBoot整合系列】SpringBoot3.x整合Swagger

目录 产生背景官方解释:作用SpringBoot3整合Swagger注意事项swagger3 常用注解SpringBoot3.x整合Swagger1.创建工程(jdk:17,boot:3.2.4)2.引入pom依赖3.application.yml添加配置4.添加swagger3.0配置5.控制器层(Controller)6.模型层(Model)7.启动并测试【Get请求接口…

一口气搞懂分库分表 12 种分片算法,大厂都在用

前言 本文是《ShardingSphere5.x分库分表原理与实战》系列的第五篇文章,我们一起梳理下ShardingSphere框架中的核心部分分片策略和分片算法,其内部针为我们提供了多种分片策略和分片算法,来应对不同的业务场景,本着拿来即用的原则…

大学教材《C语言程序设计》(浙大版)课后习题解析 | 第三、四章

概述 本文主要提供《C语言程序设计》(浙大版) 第三、四章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第五、六章节课后习题解析,如想了解更多,请持续关注该专栏。 专栏直达链接:《C语言程序设计》(浙大版)_孟…

文件IO的方式读取jpeg图片的分辨率

1、读取jpeg图片分辨率的两种方式 1.1 使用libjpeg库 可以使用libjpeg库读取JPEG图像文件&#xff0c;并获取图像的分辨率&#xff08;宽度和高度&#xff09;&#xff0c;简单demo示例如下&#xff1a; #include <stdio.h> #include <jpeglib.h>int main() {st…

接口测试、postman、测试点提取【主】

接口测试是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点 测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系 文章目录 HTTP接口 & Web Service接口RESTful接口…

sentinel热点参数流控

1、概念 热点参数限流会统计传入参数中的热点参数&#xff0c;并根据配置的限流阈值与模式&#xff0c;对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制&#xff0c;仅对包含热点参数的资源调用生效。 2、示例 2.1、目的 对于如下的/get接口的参…

what is apache?

Apache 通常指 Apache Software Foundation (ASF) 或 Apache HTTP Server&#xff0c;两者都是计算机软件领域的重要实体。 Apache 软件基金会 (ASF)&#xff1a;Apache 软件基金会是一个开发开源软件项目的非营利组织。它为涵盖软件开发各个方面的广泛项目提供支持&#xff0c…

Redis 教程系列之Redis PHP 使用 Redis(十二)

PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前&#xff0c; 我们需要确保已经安装了 redis 服务及 PHP redis 驱动&#xff0c;且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动&#xff1a;下载地址为:https://github.com/phpredis/phpredis/releases。 P…

使用启智OpenI平台体验Open-Sora笔记

OpenI准备部分 镜像代码仓 创建云脑任务 新建调试任务 镜像选择 如果不想体验整个安装配置过程的话&#xff0c;我准备了一个Open-Sora的环境镜像应该可以直接开箱即用 地址&#xff1a; 192.168.204.22:5000/default-workspace/99280a9940ae44ca8f5892134386fddb/image:Open…

sql注入五-WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

演示案例&#xff1a; 数据猜解-库表列数据&字典权限操作-文件&命令&交互式提交方法-POST&HEAD&JSON绕过模块-Tamper脚本-使用&开发分析拓展-代理&调试&指纹&风险&等级 #参考&#xff1a; https://www.cnblogs.com/bmjoker/p/9326258.…

PMBOK第八版、项目管理AI标准...PMI标准今年有这些进展

项目管理实践标准不断在演变&#xff0c;PMI作为项目管理领域的权威机构&#xff0c;一直致力于与全球各行各业的项目实践者一同探索和研究最新的行业标准&#xff0c;确保PMI标准符合全球项目专业人士当前能力建设与职业发展的需要。 今年以来&#xff0c;我们发布了一系列PM…

NetSuite学习笔记 - 人工成本字段如何按员工所属公司货币显示

在员工档案中输入了人工成本1000&#xff0c;在列表中显示的跟详情中显示的不一样&#xff1f;为什么&#xff1f;怎么办&#xff1f; 详情页中维护人工成本为1000 列表中显示为140.77 1. 开始我以为是因为用的中文环境&#xff0c;可能选了两个不同的字段&#xff0c;切换到英…

学习笔记:MYSQL数据库基础知识

MYSQL数据库基础知识学习笔记 MYSQL基础学习数据库相关概念现主流数据库排名数据模型SQL分类SQL数据库基础操作 2024/3/27 学习资料&#xff1a;黑马程序员:MYSQL MYSQL基础学习 数据库和数据库管理系统(DBMS) 数据库: 是存储数据的集合&#xff0c;包括表、视图、索引等对象…

client-go中ListAndWatch机制,informer源码详解

文章首发地址&#xff1a; 学一下 (suxueit.com)https://suxueit.com/article_detail/s9UMb44BWZdDRfKqFv22 先上一张&#xff0c;不知道是那个大佬画的图 简单描述一下流程 client-go封装部分 以pod为例 、先List所有的Pod资源&#xff0c;然后通过已经获取的pod资源的最大版…