{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "e50548bd-15f8-46ea-98a1-2222bc05ab7c", "metadata": {}, "outputs": [ { "data": { "image/png": "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8UYmTJjA5z73OW6//Xbmz58P6JilIqOSVH5+PhdffDHLli2LPxaNRlm2bBlVVVUeI/PDOcett97Kk08+yfLlyxk9enS75y+++GLy8vLaHa+tW7eye/fu+PGqqqpi48aN7T4MS5cupbi4+EMnpr5g2rRpbNy4kfXr18e3yZMnM2vWrPjXOmbtTZ069UNDG7Zt28aoUaMAGD16NBUVFe2OWUNDA6tWrWp3zOrr61m7dm18n+XLlxONRpkyZUoafor0Onr0aHxx1lY5OTlEo1FAxywlvis3UrVw4UJXUFDgHnnkEbdlyxb3pS99yZWWlrartAqLW265xZWUlLiXXnrJvfvuu/Ht6NGj8X2+/OUvu8rKSrd8+XL36quvuqqqKldVVRV/vrWc+sorr3Tr1693zz//vBs2bFifLadO5OTqPud0zDpavXq1y83Ndffee6/bvn27e+yxx1xRUZH75S9/Gd9nwYIFrrS01D399NPutddec9dcc03CcupJkya5VatWuZUrV7oxY8b02XLq2bNnuzPOOCNegv7EE0+4oUOHum984xvxfXTMkpNxSco55370ox+5yspKl5+f7y699FL3yiuv+A7JCyDh9vDDD8f3OXbsmPvKV77iBg0a5IqKity1117r3n333Xavs2vXLnf11Ve7wsJCN3ToUPf1r3/dnThxIs0/jT8dk5SO2Yc9++yzbvz48a6goMCNHTvWPfTQQ+2ej0aj7u6773bl5eWuoKDATZs2zW3durXdPgcOHHAzZ850AwYMcMXFxe6mm25yhw4dSuePkTYNDQ1u7ty5rrKy0vXr18+dffbZ7lvf+la7IQo6ZsnRelIiIhJYGXVPSkREwkVJSkREAktJSkREAktJSkREAktJSkREAktJSkREAktJSkREAktJSkREAktJSkREAktJSkREAktJSkREAuv/B5bfpI61+nBJAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import cv2\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "def find_connected_components(img, x1, y1):\n", " # Convert the image to grayscale\n", " gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", "\n", " # Find connected components\n", " ret, labels = cv2.connectedComponents(gray)\n", "\n", " # Get the label of the point (x1, y1)\n", " label = labels[y1, x1]\n", "\n", " # Get all points in the same connected component as (x1, y1)\n", " area_points = np.where(labels == label)\n", "\n", " return area_points\n", "\n", "def plot_connected_area(img, area_points):\n", " # Create a blank image\n", " img_copy = np.zeros(img.shape, dtype=np.uint8)\n", "\n", " # Color the connected area\n", " img_copy[area_points] = [255, 0, 0] # Red color\n", "\n", " # Convert color space for matplotlib\n", " img_copy = cv2.cvtColor(img_copy, cv2.COLOR_BGR2RGB)\n", "\n", " # Plot the image\n", " plt.imshow(img_copy)\n", " plt.show()\n", "\n", "# Load an image\n", "img = cv2.imread('c-4.png')\n", "\n", "# Find connected points\n", "x1, y1 = 100, 100 # example coordinates\n", "area_points = find_connected_components(img, x1, y1)\n", "\n", "# Plot the connected area\n", "plot_connected_area(img, area_points)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "da26c857-566b-4357-a992-88799d146f7a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.8" } }, "nbformat": 4, "nbformat_minor": 5 }