[halcon] 局部图片保存 gen_circle 和 gen_rectangle2 对比 这怕不是bug吧

背景

我想实现一个功能,获取图片中瑕疵的位置,将瑕疵周边的一块区域抠图并保存。

上代码

一开始我代码这么写的:

gen_circle (Rectangle, Row[i], Column[i], 256)
reduce_domain(Image,Rectangle,GrayEllipse)
crop_domain(GrayEllipse, ImagePart1)
write_image(ImagePart1, ‘bmp’, 0, ‘monk01.bmp’)

因为 gen_circle 指定的是半径,所以图片大小为512,是完全正确的:
在这里插入图片描述
但是图片是找个样子的:(所以我还是生成一个方向的吧)
在这里插入图片描述

修改代码

gen_rectangle2 (Rectangle, Row[i], Column[i], 0, 256, 256)
reduce_domain(Image,Rectangle,GrayEllipse)
crop_domain(GrayEllipse, ImagePart1)
write_image(ImagePart1, 'bmp', 0, 'monk01.bmp')

这回图片是没问题了:
在这里插入图片描述
但是,大小居然多了一个像素:
在这里插入图片描述
gen_rectangle2 和 gen_circle 的逻辑几乎一样啊:
gen_rectangle2 设置中心点,然后设置半个长和半个宽
gen_circle 设置中心点,然后设置半径

再次修改代码

为啥gen_rectangle2 会多一个像素呢?
于是,我改了一下代码:

gen_rectangle2 (Rectangle, Row[i], Column[i], 0, 256-0.5, 256-0.5)
reduce_domain(Image,Rectangle,GrayEllipse)
crop_domain(GrayEllipse, ImagePart1)
write_image(ImagePart1, 'bmp', 0, 'monk01.bmp')

长宽各减去了0.5,然后就得到了512*512的图片了。

小结

这算是halcon的bug吗?哪位大神评论区解释下?

局部保存的逻辑

1 首先生成一块区域:如 gen_rectangle2
2 利用区域进行抠图:reduce_domain
3 crop_domain利用reduce_domain抠的图,对原图进行裁剪
4 利用 write_image 保存裁剪后的图片

注意:裁剪图片需要reduce_domain 和 crop_domain配合使用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mac清理磁盘空间软件有哪些 mac清理磁盘空间怎么清理

随着时间的推移,Mac电脑上的文件会越来越多,很快就会占满磁盘空间。这时候,我们需要一个好的Mac清理磁盘空间软件来释放空间,保持电脑的良好性能。那么,mac清理磁盘空间软件有哪些呢?接下来,我将…

Skip Connection——提高深度神经网络性能的利器

可以参考一下这篇知乎所讲 https://zhuanlan.zhihu.com/p/457590578 长跳跃连接用于将信息从编码器传播到解码器,以恢复在下采样期间丢失的信息

P5-P8都需要掌握哪些技术

P5级别技术栈 职级:中级工程师 薪资:年薪20万-40万 要求:扎实的Java基础,对常见的设计模式与数据结构算法有颇多研究,熟悉常见的开发规范。 P6级别技术栈 职级:高级/资深工程师 薪资:年薪40万-60万 要求:熟悉各种技术中间件的使用与优化&#…

腾讯云-对象存储服务(COS)的使用总结-JavaScript篇

简介 对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式,用户可简单、快速地接入 COS&#xff0…

机器学习:异常检测实战

文章目录 Anomaly Detection目录任务介绍数据集方法评估Baseline报告报告评价标准 Anomaly Detection 目录 任务介绍 无监督的异常检测 数据集 方法 autoencode 是否能够还原出原始类型图片,基于重构loss来判断是否正常 重构误差当作异常分数 评估 采用ROC和AUC…

Gitlab创建一个空项目

1. 创建项目 Project slug是访问地址的后缀,跟前边的ProjectUrl拼在一起,就是此项目的首页地址; Visibility Level选择默认私有即可,选择内部或者公开,就会暴露代码。 勾选Readme选项,这样项目内默认会带…

探索OLED透明屏的优缺点:引领科技未来的革命性突破

OLED透明屏作为一项革命性的创新技术,其令人惊叹的透明度和柔性性能引起了全球范围内的关注。 然而,了解OLED透明屏的优缺点对于我们全面认识其在科技未来中的地位至关重要。 今天,尼伽将深入探讨OLED透明屏的优势和限制,并借助…

【重要】【转载】NOR Flash芯片内执行(XIP)

为什么程序不能直接在nandflash上执行?出于这个疑惑带来了这篇博文,是我在网上找了很多资料后总结的,假如有误,希望马上指出来,免得我误人子弟。谢谢! 首先认识下nandflash和norflash: NOR Flas…

Python学习 -- 异常分类

在编写Python代码时,异常处理是至关重要的一部分,它能够帮助我们更好地应对意外情况,提高程序的健壮性。本文将详细介绍Python中常见的异常类型,包括AttributeError、FileNotFoundError、IndexError、KeyError、NameError、TypeEr…

第十七课:利用 Setup Factory 制作 Qt 软件安装包

功能描述:详细介绍如何利用 Setup Factory 制作 Qt 软件安装包,从 Setup Factory 软件下载、安装,到如何利用 Setup Factory 制作软件安装包,手把手教你将 Qt 应用程序制作成具有安装向导的安装包。 一、Setup Factory 简介 Setu…

Java基础 数据结构一【栈、队列】

什么是数据结构 数据结构是计算机科学中的一个重要概念,用于组织和存储数据以便有效地进行访问、操作和管理。它涉及了如何在计算机内存中组织数据,以便于在不同操作中进行查找、插入、删除等操作 数据结构可以看作是一种数据的组织方式,不…

脚本掌控,Linux上实现Spring Boot(JAR包)开机自启

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: 脚本掌控,Linux上实现Spring Boot(JAR包&#x…

TCP/UDP原理

文章目录 一、端口1. 端口的定义和作用2.服务端和客户端的区别3.常见的知名端口号有 二、TCP的原理1.TCP头部封装格式2.TCP可靠性机制三次握手确认机制四次挥手RST结束连接窗口机制 3.完整性校验4.TCP特征5.TCP的适用场景 三、UDP的原理1.UDP头部封装格式2.UDP特征3.UDP的适用场…

编写c语言程序调用openssl编译出的动态链接库

文章目录 一、编译生成链接库二、示例一:调用RAND_bytes函数三、示例二:调用SHA256 一、编译生成链接库 下载安装openssl并编译生成链接库的过程在我的另一篇文章中已经详细说明了:Ubuntu中安装OpenSSL 此外,我们还需要提前了解…

Java“牵手”天猫商品历史价格信息API接口数据,天猫API接口申请指南

天猫平台商品历史价格接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、最低价、当前价格、价格信息等详细信息 。 获取商品历史价格接口API是一种用于获取电商平台…

linux————ELK(日志收集系统集群)

目录 一、为什么要使用ELK 二、ELK作用 二、组件 一、elasticsearch 特点 二、logstash 工作过程 INPUT(输入) FILETER(过滤) OUTPUTS(输出) 三、kibana 三、架构类型 ELK ELKK ELFK ELFKK EFK 四、构建ELk集群…

信息技术02--初/高中--分类选择题(377道题与解析)

文章目录 第一章 办公软件 1-96第二章 信息技术基础 1-41第三章 计算机系统基础 1-28第四章 多媒体技术 1-115第五章 计算机网络技术 1-50第六章 信息安全 1-3第七章 算法与程序简介 1-13第八章 数据结构 1-2第九章 数据库技术 1-20第十章 练习 1-9 第一章 办公软件 1-96 1、某…

【二维偏序】CF Edu10 D

Problem - D - Codeforces 题意&#xff1a; 思路&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long long #define lowbit(x) (x & (-x))using i64 long long;constexpr int N 2e6 10; constexpr int M 2e6 10; constexpr int P 2e6; c…

研磨设计模式day14模板方法模式

目录 场景 原有逻辑 有何问题 解决方案 解决思路 代码实现 重写示例 模板方法的优缺点 模板方法的本质 何时选用 场景 现在模拟一个场景&#xff0c;两个人要登录一个系统&#xff0c;一个是管理员一个是用户&#xff0c;这两个不同身份的登录是由后端对应的两个接…

算法通关村第9关【黄金】| 两道有挑战的问题

1. 将有序数组转换为二叉搜索树 思路&#xff1a;二分法&#xff0c;这个算法保证了每次选择的中间元素都能保持左右子树的高度差不超过 1&#xff0c;从而构建一个高度平衡的二叉搜索树。这个过程类似于分治法&#xff0c;通过递归不断将大问题分解成小问题并解决。 找到数组…