我有两张结构相同的xray产品图片,如何用halcon语言中的仿射变换实现将两张图片配准对齐(已知图片特征点的坐标,halcon软件为12.0版本)
时间: 2024-04-11 07:27:30 浏览: 191
运用仿射变换粗配准,再运用active-demons算法进行精细配准
5星 · 资源好评率100%
success: () => {
console.log('指令写入成功');
this.onBLECharacteristicValueChange();
},
fail: (errMsg) => {
console.log(errMsg);
},
});
},
// 监听特征值变化
on在Halcon 12.0版本中,如果已知两张图片的特征点坐标,可以使用仿射变换BLECharacteristicValueChange() {
bluetooth.onBLECharacteristicValueChange((res) => {
const value = this.ab2hex(res.value);
来实现将这两张图片配准对齐。以下是一个示例代码:
```halcon
read_image(ImageRef, console.log('特征值变化:', value);
this.setData({
reply: value,
});
});
},
// ArrayBuffer转16进制字符串
ab2hex(buffer) {
const hexArr = Array.prototype.map.call(new Uint8Array(buffer), 'image1.jpg') // 读取第一张图片
read_image(ImageTest, 'image2.jpg') // 读取 (bit) => {
return ('00' + bit.toString(16)).slice(-2);
});
return hexArr.join('');
第二张图片
// 转换为灰度图像
rgb1_to_gray(ImageRef, ImageRefGray)
rgb1_to_gray },
// 断开连接
disconnectDevice() {
const deviceId = this.data.currentDevice;
bluetooth.closeBLEConnection({
deviceId: deviceId,
success: () => {
console.log('断开连接成功');
this.setData({
currentDevice: '',
reply(ImageTest, ImageTestGray)
// 定义特征点坐标
RowRef := [100, 200, 300] : '',
});
},
fail: (errMsg) => {
console.log(errMsg);
},
});
},
// 页面 // 第一张图片的特征点行坐标
ColumnRef := [150, 250, 350] // 第一加载完成时触发
onLoad() {
this.initBluetooth();
},
});
```
上述代码是一个小程序页面的张图片的特征点列坐标
RowTest := [110, 220, 330] // 第二张图片的JavaScript代码,实现了连接多个BLE设备、逐个写入指令并获取对应指令回复的功能特征点行坐标
ColumnTest := [160, 260, 360] // 第二张图片的特征点。其中,通过使用封装好的`bluetooth`模块来进行蓝牙相关操作,具体实现细节可以列坐标
// 创建仿射变换
create_funct_2d_affine(RowRef, ColumnRef, RowTest,参考相关文档或者自行封装蓝牙模块。在代码中,通过调用相应的蓝牙API ColumnTest, HomMat2D)
// 应用仿射变换
affine_trans_image(ImageTest, RegisteredImage, HomMat2来实现搜索设备、连接设备、获取设备服务列表、获取设备特征值列表、开启特征值变化监听、写入指令、监听特征值变化、断开连接等操作。
阅读全文