【HALCON】タプル操作完全ガイド - tuple関数リファレンス

PUBLISHED 2024-09-12

HALCONのタプル(Tuple)は、複数の値を一つのデータ構造として扱うための基本データ型です。数値、文字列、混合データを格納でき、画像処理やデータ解析において広く使用されます。

基本操作

tuple_length - タプルの長さを取得

タプル内の要素数を取得します。

tuple_length(Tuple, Length)
Tuple := [10, 20, 30, 40, 50]
tuple_length(Tuple, Length)
* Length = 5

tuple_select - 要素の選択

指定したインデックスの要素を取得します。

tuple_select(Tuple, Index, Selected)
Tuple := ['a', 'b', 'c', 'd']
tuple_select(Tuple, 2, Selected)
* Selected = 'c'

tuple_concat - タプルの結合

2つのタプルを結合します。

tuple_concat(Tuple1, Tuple2, Concatenated)
Tuple1 := [1, 2, 3]
Tuple2 := [4, 5, 6]
tuple_concat(Tuple1, Tuple2, Result)
* Result = [1, 2, 3, 4, 5, 6]

tuple_sort - ソート

タプルを昇順にソートします。

tuple_sort(Tuple, Sorted)

tuple_find - 要素の検索

タプル内で特定の値を検索し、インデックスを返します。

tuple_find(Tuple, ToFind, Indices)

数学関数

算術演算

関数説明
tuple_add加算tuple_add([1,2], [3,4], R)[4,6]
tuple_sub減算tuple_sub([5,6], [1,2], R)[4,4]
tuple_mult乗算tuple_mult([2,3], [4,5], R)[8,15]
tuple_div除算tuple_div([10,20], [2,4], R)[5,5]
tuple_mod剰余tuple_mod([10,11], [3,3], R)[1,2]
tuple_neg符号反転tuple_neg([1,-2], R)[-1,2]
tuple_abs絶対値tuple_abs([-1,2,-3], R)[1,2,3]
tuple_powべき乗tuple_pow([2,3], [3,2], R)[8,9]
tuple_sqrt平方根tuple_sqrt([4,9,16], R)[2,3,4]

三角関数

関数説明
tuple_sin正弦(サイン)
tuple_cos余弦(コサイン)
tuple_tan正接(タンジェント)
tuple_asin逆正弦
tuple_acos逆余弦
tuple_atan逆正接
tuple_atan22引数逆正接
tuple_sinh双曲線正弦
tuple_cosh双曲線余弦
tuple_tanh双曲線正接

対数・指数関数

関数説明
tuple_exp指数関数(e^x)
tuple_log自然対数
tuple_log10常用対数
tuple_ldexp2のべき乗スケーリング

丸め関数

関数説明
tuple_floor切り捨て
tuple_ceil切り上げ
tuple_round四捨五入
tuple_fabs浮動小数点絶対値
tuple_fmod浮動小数点剰余

角度変換

関数説明
tuple_rad度からラジアンへ変換
tuple_degラジアンから度へ変換

統計関数

関数説明
tuple_min最小値
tuple_max最大値
tuple_min2要素ごとの最小値
tuple_max2要素ごとの最大値
tuple_mean平均値
tuple_median中央値
tuple_sum合計
tuple_cumul累積和
tuple_deviation標準偏差

比較演算

関数説明
tuple_equal等しい
tuple_not_equal等しくない
tuple_greaterより大きい
tuple_greater_equal以上
tuple_lessより小さい
tuple_less_equal以下
tuple_equal_elem要素ごとの等価比較
tuple_greater_elem要素ごとの大小比較

論理・ビット演算

論理演算

関数説明
tuple_and論理AND
tuple_or論理OR
tuple_not論理NOT
tuple_xor排他的OR

ビット演算

関数説明
tuple_bandビットAND
tuple_borビットOR
tuple_bxorビットXOR
tuple_bnotビットNOT
tuple_lsh左シフト
tuple_rsh右シフト

文字列操作

基本操作

関数説明
tuple_string数値を文字列に変換
tuple_number文字列を数値に変換
tuple_strlen文字列長を取得
tuple_substr部分文字列を取得
tuple_split文字列を分割

検索

関数説明
tuple_strchr文字を検索
tuple_strrchr文字を後方から検索
tuple_strstr部分文字列を検索
tuple_strrstr部分文字列を後方から検索

正規表現

関数説明
tuple_regexp_match正規表現マッチング
tuple_regexp_replace正規表現置換
tuple_regexp_select正規表現選択
tuple_regexp_test正規表現テスト

文字コード

関数説明
tuple_chr文字コードを文字に変換
tuple_ord文字を文字コードに変換

選択・操作

関数説明
tuple_first_n先頭からN個の要素を取得
tuple_last_n末尾からN個の要素を取得
tuple_select_range範囲を選択
tuple_select_maskマスクで選択
tuple_select_rankランクで選択
tuple_insert要素を挿入
tuple_remove要素を削除
tuple_replace要素を置換
tuple_inverse順序を反転
tuple_uniq重複を除去

集合演算

関数説明
tuple_union和集合
tuple_intersection積集合
tuple_difference差集合
tuple_symmdiff対称差

型チェック・変換

関数説明
tuple_type型を取得
tuple_is_int整数かどうか
tuple_is_real実数かどうか
tuple_is_string文字列かどうか
tuple_is_number数値かどうか
tuple_is_mixed混合型かどうか
tuple_int整数に変換
tuple_real実数に変換

生成関数

関数説明
tuple_gen_const定数タプル生成tuple_gen_const(5, 0, T)[0,0,0,0,0]
tuple_gen_sequence連番タプル生成tuple_gen_sequence(5, 1, 2, T)[1,3,5,7,9]
tuple_rand乱数タプル生成tuple_rand(5, R)

使用例

座標データの処理

* 点群のX座標とY座標
XCoords := [10, 20, 30, 40, 50]
YCoords := [15, 25, 35, 45, 55]

* 各点の距離を計算
tuple_mult(XCoords, XCoords, X2)
tuple_mult(YCoords, YCoords, Y2)
tuple_add(X2, Y2, Sum)
tuple_sqrt(Sum, Distances)

* 平均距離
tuple_mean(Distances, MeanDistance)

文字列処理

* ファイル名から拡張子を抽出
FileName := 'image_001.png'
tuple_strrchr(FileName, '.', Pos)
tuple_substr(FileName, Pos, 4, Extension)
* Extension = '.png'

まとめ

HALCONのタプル関数は、数値計算、文字列操作、データ変換など、画像処理に必要なあらゆるデータ操作をサポートしています。適切な関数を組み合わせることで、効率的なデータ処理が可能です。

CATEGORY
TAGS
円