# 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/function-blocks/image-transformations/operations/polar-transform.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
