> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/function-blocks/blocks-reference/image-transformations/operations/polar-transform.md).

# Polar Transform

This function block converts a rectangular (Cartesian) image area into a linear polar representation. Use it to unwrap circular or radial features (for example, to examine rings, wheels, or circular seams) so they become easier to analyze with linear tools.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

`Image Any` Input image to be transformed. (socket: input)

`Center_X` Horizontal coordinate of the transform center. If left empty, the block will use the image center. (socket: input)

`Center_Y` Vertical coordinate of the transform center. If left empty, the block will use the image center. (socket: input)

`Max Radius` Maximum radius to use for the transform. If left empty, the block will use a radius that fits the image area. (socket: input)

## 📤 Outputs <a href="#outputs" id="outputs"></a>

`Image Any` The resulting linear-polar transformed image. (socket: output)

## 🕹️ Controls <a href="#controls" id="controls"></a>

The block has no separate UI widgets; the three numeric inputs act as parameters you can feed from other blocks or manual inputs:

`Center_X` Horizontal center used for the polar remap. Adjust to move the transform center left/right.

`Center_Y` Vertical center used for the polar remap. Adjust to move the transform center up/down.

`Max Radius` Limits how far from the center the transform reaches. Smaller values crop the radial extent; larger values include more of the image.

## ⚙️ Running mechanism <a href="#running-mechanism" id="running-mechanism"></a>

When the block runs it reads the provided image and numeric inputs, computes a linear-to-polar remap centered at the specified coordinates, and outputs the unwrapped image. If center coordinates or radius are not provided, the block uses sensible defaults so the transform still runs.

## 🎯 Features <a href="#features" id="features"></a>

* Unwraps circular or radial structures into a rectangular view for easier inspection.
* Accepts optional numeric parameters so you can lock the center and radius precisely.
* Works with any image-producing block that outputs image data.

## 📝 Usage Instructions <a href="#usage" id="usage"></a>

1. Provide an image to `Image Any` input.
2. Optionally feed numbers to `Center_X` and `Center_Y` to define the transform center (or leave empty to use the image center).
3. Optionally feed a number to `Max Radius` to limit radial extent.
4. Use the transformed output from the `Image Any` output for further analysis or visualization.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* To focus the transform on a specific area, crop first using `Image ROI` or `Image ROI Select` then feed the cropped image into this block.
* If your image is very large and you want faster processing, use `Image Resize` before this block to downscale while preserving the area of interest.
* If the circular feature is rotated, align it first with `Rotate Image Angle` or `Image AutoRotator` so the unwrapped result is easier to read.
* After unwrapping, use analysis blocks such as `Histogram On Line` to inspect intensity profiles along the radial or angular direction.
* To visually inspect results, connect the output to `Show Image` for an interactive preview during development.
* For object searches around a ring, feed the transformed image to detection blocks like `Find Object` to simplify locating repeating patterns.

(hint: combine the above blocks to build robust inspection pipelines for circular parts, seals, or ring-shaped textures)

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* If the unwrapped image looks offset or warped, check `Center_X` and `Center_Y` and adjust them to the true center of the circular feature.
* If parts of the circle are missing, increase `Max Radius` or crop the input differently using `Image ROI` so the entire feature is within the transform radius.
* If output appears stretched or low-detail, try reducing input size with `Image Resize` or improving capture resolution before the transform.
* If no output appears, confirm the input socket labeled `Image Any` is receiving valid image data (use `Show Image` to verify).
