# Corner Detector

This function block specializes in detecting corner patterns within images. Utilizing well-known algorithms, it provides an efficient means to identify significant points of interest that can be useful in various image processing tasks.

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

`Image Any` This input accepts any image data for corner detection.

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

`Detected Corners` The output shows the original image with detected corners highlighted.

`Number of Corners` This output indicates the total number of corners detected in the input image.

`Locations` This output provides the exact locations of detected corners as coordinate points.

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

`Detector Type` A dropdown menu that allows you to select the corner detection algorithm to be used, either "HARRIS CORNER" or "SHI-THOMAS CORNER".

`Threshold` A slider to adjust the sensitivity of corner detection. Higher values may yield fewer corners, while lower values may return more corners.

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

`Multiple Detection Methods` Users can choose between different corner detection algorithms based on their specific needs.

`Visual Output` Corners are displayed on the image using colored circles, providing clear visual feedback on the detected features.

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

1. **Connect Input Image**: Link an image to the `Image Any` input for analysis.
2. **Select Detector Type**: Choose the desired corner detection algorithm from the `Detector Type` dropdown.
3. **Adjust Threshold**: Use the `Threshold` slider to set the sensitivity of the corner detection process.
4. **Run the Block**: Evaluate the block to perform corner detection. The output will include the image with detected corners, the count of corners, and their respective locations.

## 📊 Evaluation <a href="#evaluation" id="evaluation"></a>

When executed, this function block will process the input image, highlight detected corners, and provide relevant numerical and coordinate data on the output.

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

<details>

<summary>Tuning the Detection</summary>

To enhance corner detection, experiment with different threshold values to find the most effective sensitivity for your specific image.

</details>

<details>

<summary>Pre-processing the Input Image</summary>

Consider using a `Blur` or `Image Threshold` block beforehand to reduce noise in the image, which can improve detection accuracy.

</details>

<details>

<summary>Visualize Results with Different Data Types</summary>

You can connect this block's `Locations` output to other blocks that perform further processing based on corner locations, such as `Draw Point` or `Measure Position Distance`.

</details>

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

<details>

<summary>No Corners Detected</summary>

If no corners are detected, ensure that the input image is clear and contains distinct features. Adjust the threshold for detection sensitivity.

</details>

<details>

<summary>Threshold Issues</summary>

Ensure the threshold value follows the acceptable range. If there is an error regarding the threshold, adjust it to a more suitable number.

</details>
