gen_measure_rectangle2 — MEASURE1D caliper op

• Data kinds: कोई नहीं → measurehandle (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.gen_measure_rectangle2(row, col, phi, length1, length2, shape) (implementation को सीधे call करना हो तो import measuring1d; measuring1d.gen_measure_rectangle2(row, col, phi, length1, length2, shape), registry से लेना हो तो opsmeasure1d.get("gen_measure_rectangle2"))

• HALCON समकक्ष: gen_measure_rectangle2 (अर्थ और parameters समझने के लिए HALCON reference उपयोगी है)

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

घुमाया हुआ measurement rectangle परिभाषित करता है (profile को phi दिशा वाली major axis के साथ 1 px अंतराल पर लिया जाता है) (gen_measure_rectangle2)। sample संख्या n = max(2, round(2*length1)+1), आरंभ बिंदु केंद्र से -(n-1)/2 px पर है। length2 चौड़ाई की दिशा में averaging चौड़ाई [px] है।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

★長さの意味(2026-11-09 に実装へ合わせて明記。値は変えていない):

• length1 は半長(プロファイルは中心 ± length1)。HALCON の Length1 と同じ。

• length2 は全幅: measure_pos は法線方向の np.linspace(-w/2, w/2, max(2, w)) (w = int(length2))の w 本を平均し、w ≤ 1 なら平均しない。HALCON の Length2 は 半高(Half height of the rectangle、HALCON の reference)で、同じライブラリの gen_rectangle2_contour_xld も length2 を半幅(角が ±length2)として描く —— 同じ数字を渡すと、ここでは半分の幅しか平均しない。★HALCON の整数 offset −L2..+L2(2·L2+1 本)をそのまま作る length2 は無い: length2 = 2·L2 + 1 を渡すと本数は 2·L2+1 だが、offset は ±(L2 + 0.5) の範囲に間隔 (2·L2+1)/(2·L2) で並ぶ(L2=2 → w=5 で −2.5, −1.25, 0, 1.25, 2.5)—— 整数でなく幅も 1 画素広い。辺が測定線に直交していれば平均の結果は近いが、幅方向に構造があると別の矩形を測る。

• w が偶数のとき標本は中心の行を通らない(w=2 は offset ±1 の 2 本だけ、w=4 は ±2, ±0.67)。中心を含めたいなら奇数の w。

★角の向き: プロファイルは (row + t·sin φ, col + t·cos φ) に進む。行が下向きの画像座標で φ を時計回りに数える(φ = +π/2 は画面の下向き)。HALCON の Phi は水平からの「数学的に正」の角(gen_rectangle2 の reference)で、行が下向きの画像では反時計回り(φ = π/2 は上向き)と読める —— 符号が逆。HALCON の Phi を移すなら phi = −Phi (極性 positive/negative と並び順が HALCON と揃う)。★HALCON の実機での照合はしていない(reference の文言からの読み)。ライブラリ内では gen_rectangle2_contour_xld も同じ +sin で一貫している。

उपयोग की विस्तृत guide

• subpixel_measuring family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• example_scratch_width — py -3.11 examples/example_scratch_width.py

• poc_barcode_1d — py -3.11 examples/poc_barcode_1d.py

• poc_battery_electrode_breathing — py -3.11 examples/poc_battery_electrode_breathing.py

• poc_calipers_under_illusion — py -3.11 examples/poc_calipers_under_illusion.py

• poc_dimensional_inspection — py -3.11 examples/poc_dimensional_inspection.py

• poc_screw_thread_metrology — py -3.11 examples/poc_screw_thread_metrology.py

• poc_solar_limb_darkening — py -3.11 examples/poc_solar_limb_darkening.py

• poc_telecentric_metrology — py -3.11 examples/poc_telecentric_metrology.py

• poc_tree_ring_dendro — py -3.11 examples/poc_tree_ring_dendro.py

• poc_water_level — py -3.11 examples/poc_water_level.py

• poc_weld_bead_profile — py -3.11 examples/poc_weld_bead_profile.py

• poc_weld_radiograph_porosity — py -3.11 examples/poc_weld_radiograph_porosity.py

वे अगले ops जिनसे type जुड़ता है (measurehandle को input के रूप में लेते हैं)

translate_measure · measure_pos · measure_pairs · fuzzy_measure_pairing

इसी category के (caliper)

gen_measure_arc · translate_measure · measure_pos · measure_pairs · fuzzy_measure_pairing


*Provenance: measuring1d.py — MEASURE1D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.