rotate_img — 2D geometry op

Data kinds: imageimage

Call: fullseye.apply(img, "rotate_img", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])

HALCON equivalent: rotate_image (the HALCON reference is a useful guide to its meaning and parameters)

Usage

Rotate about the image centre by `-45° + 90°·a (a=0.5 → 0°). b` unused.

> The detailed description below is the original text — the summary and the headings are translated.

★呼び出し規約(2026-09-02 に明文化。実装は変えていない):

キャンバスを変えない (`reshape=False`)。出力の shape は入力と同じで、

回転で枠外へ出た画素は捨てられる。

枠外は鏡映で埋める (`mode="reflect"`)。つまり回すと **四隅に元画像が

折り返して写り込む**(帳票を回すと隅に鏡文字が出る)。

どちらが正典かは用途で割れる。**この op の正典は「連鎖しても常に同じ形・

同じ値域の画像が出ること」** — 進化パイプラインは image を段間で無条件に

繋ぐので、shape が変わる/枠外に定数が入ると後段の統計(平均・分散・

ヒストグラム)が回転量に依存して動いてしまう。鏡映は「無から作った定数」で

はなく画像自身の統計を保つので、この用途ではこちらを採る。

deskew(帳票の傾き補正)には向かない: 折り返した鏡文字が OCR / 二値化に

そのまま乗る。背景色で埋めたい場合はこの op を使わず、

`scipy.ndimage.rotate(v, ang, reshape=True, mode="constant", cval=bg)` を

直接呼ぶこと(`fullseye.apply` の 2 つまみ界面では背景色を渡せない)。

同じ規約が backends_auto の `rotate_image (_sh_geom` kind="rotate")にも

そのまま当てはまる。

Detailed usage guide

gallery2d_geometry family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

gallery2d_geometrypy -3.11 examples/gallery2d_geometry.py

Ops the type connects to (they accept image as input)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

Same category (geometry)

rescale_img · affine_warp · sk_swirl · mirror_image · transpose_region · rotate_image · zoom_image_factor · zoom_image_size


*Provenance: ops.py — 2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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