C# halcon SubImage的使用

SubImage(HObject imageMinuend, HObject imageSubtrahend, out HObject imageSub, HTuple mult, HTuple add)

公式

x1=imageMinuend此行此列的灰度

x2=imageSubtrahend此行此列的灰度

则imageSub此行此列的灰度为;(x1-x2)*mult+add

溢出裁剪

以byte图为例,小于0,为0;大于255,为255

源码一

private void butTemp_Click(object sender, EventArgs e)

{

var img1 = WHCSHalCon.Base.CreateByteImage(new byte\[\] { 0 }, 1);

var img2 = WHCSHalCon.Base.CreateByteImage(new byte\[\] { 255 }, 1);

HObject img3;

HOperatorSet.SubImage(img2, img1, out img3, 2, 0);

byte\[\] b1 = WHCSHalCon.Base.ByteImageToArr(img3);

}

结果为255

源码二

private void butTemp_Click(object sender, EventArgs e)

{

var img1 = WHCSHalCon.Base.CreateByteImage(new byte\[\] { 0 }, 1);

var img2 = WHCSHalCon.Base.CreateByteImage(new byte\[\] { 255 }, 1);

HObject img3;

HOperatorSet.SubImage(img1, img2, out img3, 2, 0);

byte\[\] b1 = WHCSHalCon.Base.ByteImageToArr(img3);

}

结果为0

注意事项

imageMinuend和imageSubtrahend的CountObj和CountChannel必须相同。否则会崩溃

测试环境

Win7 VS2022 Halcon12

相关推荐
jimy11 分钟前
std::move(a)本质是把a转换成右值引用类型
开发语言·c++
常驻客栈11 分钟前
B-深入理解计算机系统第3版之第10章:系统级 I/O
开发语言·笔记·学习笔记·常驻客栈·深入理解计算机系统
wind1003219 分钟前
VC++ 运行库 vcredist 安装失败|CLR 80131522 报错完整修复
开发语言·c++·游戏
远离UE426 分钟前
UE5 shader instructions
java·开发语言
OPEN-F7 小时前
C++进阶教程:继承与多态
开发语言·c++
luj_17689 小时前
大律师考核应重能力与科技素养
c语言·开发语言·c++·经验分享·算法
leonkay10 小时前
C# 特性(Attribute)——【1】基础讲解
开发语言·青少年编程·面试·c#·.net·个人开发
harmful_sheep10 小时前
java group by常见用法
java·开发语言·python
SKH.10 小时前
Linux软件编程(6)线程间通信
java·开发语言·数据库
whcyhhh10 小时前
头歌实践教学平台:数据科学与大数据技术导论(十六)
大数据·开发语言·python