import cv2 as cv
import numpy as np
input_image = np.array((
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 255, 255, 255, 0, 0, 0, 255],
[0, 255, 255, 255, 0, 0, 0, 0],
[0, 255, 255, 255, 0, 255, 0, 0],
[0, 0, 255, 0, 0, 0, 0, 0],
[0, 0, 255, 0, 0, 255, 255, 0],
[0,255, 0, 255, 0, 0, 255, 0],
[0, 255, 255, 255, 0, 0, 0, 0]), dtype="uint8")
kernel = np.array((
[0, 1, 0],
[1, -1, 1],
[0, 1, 0]), dtype="int")
output_image = cv.morphologyEx(input_image, cv.MORPH_HITMISS, kernel)
rate = 50
kernel = (kernel + 1) * 127
kernel = np.uint8(kernel)
kernel = cv.resize(kernel, None, fx = rate, fy = rate, interpolation = cv.INTER_NEAREST)
cv.imshow("kernel", kernel)
cv.moveWindow("kernel", 0, 0)
input_image = cv.resize(input_image, None, fx = rate, fy = rate, interpolation = cv.INTER_NEAREST)
cv.imshow("Original", input_image)
cv.moveWindow("Original", 0, 200)
output_image = cv.resize(output_image, None , fx = rate, fy = rate, interpolation = cv.INTER_NEAREST)
cv.imshow("Hit or Miss", output_image)
cv.moveWindow("Hit or Miss", 500, 200)
cv.waitKey(0)
cv.destroyAllWindows()
💢💢💢💢💢💢💢💢💢💢
import numpy as np
input_image = np.array((
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 255, 255, 255, 0, 0, 0, 255],
[0, 255, 255, 255, 0, 0, 0, 0],
[0, 255, 255, 255, 0, 255, 0, 0],
[0, 0, 255, 0, 0, 0, 0, 0],
[0, 0, 255, 0, 0, 255, 255, 0],
[0,255, 0, 255, 0, 0, 255, 0],
[0, 255, 255, 255, 0, 0, 0, 0]), dtype="uint8")
kernel = np.array((
[0, 1, 0],
[1, -1, 1],
[0, 1, 0]), dtype="int")
output_image = cv.morphologyEx(input_image, cv.MORPH_HITMISS, kernel)
rate = 50
kernel = (kernel + 1) * 127
kernel = np.uint8(kernel)
kernel = cv.resize(kernel, None, fx = rate, fy = rate, interpolation = cv.INTER_NEAREST)
cv.imshow("kernel", kernel)
cv.moveWindow("kernel", 0, 0)
input_image = cv.resize(input_image, None, fx = rate, fy = rate, interpolation = cv.INTER_NEAREST)
cv.imshow("Original", input_image)
cv.moveWindow("Original", 0, 200)
output_image = cv.resize(output_image, None , fx = rate, fy = rate, interpolation = cv.INTER_NEAREST)
cv.imshow("Hit or Miss", output_image)
cv.moveWindow("Hit or Miss", 500, 200)
cv.waitKey(0)
cv.destroyAllWindows()
💢💢💢💢💢💢💢💢💢💢
python_developer
با استفاده از se میخواهیم گوشه های شکل زیر را بیابیم 💢💢💢💢💢💢💢💢
💢💢ادامه
✅در این se ، پیکسل هایی که مقدار 1 را گرفته اند برای مشخص کردن شی و پیکسلهای 0 پس زمینه را مشخص میکنند.
〰〰〰〰〰
✅عنصر ساختار به عنوان یک #الگو که بر روی تصویر باینری میلغزدیا پیمایش میکند، (مشابه با یک هسته convolution ) استفاده می شود و پیکسل مربوط به مرکز #الگو به 1 اگر #الگو با تصویر مطابقت داشته باشد، در غیر این صورت، مقدار 0 میگیرد. به عنوان مثال، چهار عنصر ساختار زیر می توانند گوشه های چهار جهت مختلف را تشخیص دهند. نتیجه نهایی یک OR از چهار تصویر است که هر یک از چهار عنصر ساختاری به دست می آیند.
نتیجه نهایی یک OR از چهار تصویر است که
هر کدام ، از چهار عنصر ساختاری به دست آمده است.
💢💢💢💢💢💢💢💢💢💢
✅در این se ، پیکسل هایی که مقدار 1 را گرفته اند برای مشخص کردن شی و پیکسلهای 0 پس زمینه را مشخص میکنند.
〰〰〰〰〰
✅عنصر ساختار به عنوان یک #الگو که بر روی تصویر باینری میلغزدیا پیمایش میکند، (مشابه با یک هسته convolution ) استفاده می شود و پیکسل مربوط به مرکز #الگو به 1 اگر #الگو با تصویر مطابقت داشته باشد، در غیر این صورت، مقدار 0 میگیرد. به عنوان مثال، چهار عنصر ساختار زیر می توانند گوشه های چهار جهت مختلف را تشخیص دهند. نتیجه نهایی یک OR از چهار تصویر است که هر یک از چهار عنصر ساختاری به دست می آیند.
نتیجه نهایی یک OR از چهار تصویر است که
هر کدام ، از چهار عنصر ساختاری به دست آمده است.
💢💢💢💢💢💢💢💢💢💢
الگوریتم Hit-and-miss می تواند به
شکل #thin و skeletonize# کردن یک تصویر باینری استفاده شود.
این یک فرآیند تکراری است که حاوی مراحل مکرر است تا شکل را با
روش hit-and-missنازک کند.
در هر تکرار، بعضی از عناصر ساختاری مختلف برای شناسایی پیکسل های لبه ای که باید حذف شوند استفاده می شود و تا به شکل اسکلت نازک شده در بیاید.
💢💢💢💢💢💢💢💢💢💢
شکل #thin و skeletonize# کردن یک تصویر باینری استفاده شود.
این یک فرآیند تکراری است که حاوی مراحل مکرر است تا شکل را با
روش hit-and-missنازک کند.
در هر تکرار، بعضی از عناصر ساختاری مختلف برای شناسایی پیکسل های لبه ای که باید حذف شوند استفاده می شود و تا به شکل اسکلت نازک شده در بیاید.
💢💢💢💢💢💢💢💢💢💢
✅هنگامی که یک se بر روی یک تصویر باینری قرار می گیرد،
هر پیکسل آن با پیکسل مربوطه زیر عنصر ساختار مرتبط است.
✅به عنصر ساختار fit تصویر گفته میشود، اگر به ازای هر پیکسل ست شده با 1، پیکسل تصویر مربوطه هم 1 باشد(عمل AND).
✅به طور مشابه، به عنصر ساختارhit گفته می شود ، اگر حداقل برای یکی از پیکسل های ست شده به 1 ، پیکسل تصویر مربوطه نیز 1 باشد.(عمل OR)
💢💢
✅ تبدیل hit and miss، اجازه می دهد اطلاعاتی مبنی بر اینکه چگونه اشیاء در یک تصویر باینری، با محیط اطرافشان در ارتباط هستند ،بدست آوریم.
این عملیات نیاز به یک جفت سازگار از عناصر ساختاری {s1، s2} دارد
💢💢💢💢💢💢💢💢💢💢
هر پیکسل آن با پیکسل مربوطه زیر عنصر ساختار مرتبط است.
✅به عنصر ساختار fit تصویر گفته میشود، اگر به ازای هر پیکسل ست شده با 1، پیکسل تصویر مربوطه هم 1 باشد(عمل AND).
✅به طور مشابه، به عنصر ساختارhit گفته می شود ، اگر حداقل برای یکی از پیکسل های ست شده به 1 ، پیکسل تصویر مربوطه نیز 1 باشد.(عمل OR)
💢💢
✅ تبدیل hit and miss، اجازه می دهد اطلاعاتی مبنی بر اینکه چگونه اشیاء در یک تصویر باینری، با محیط اطرافشان در ارتباط هستند ،بدست آوریم.
این عملیات نیاز به یک جفت سازگار از عناصر ساختاری {s1، s2} دارد
💢💢💢💢💢💢💢💢💢💢
💢5. Morphological Gradient💢
تفاضل بین فرسایش و انبساط حاصل از یک تصویر Gradient گویند.
برای تشخیص مرز شی مفید است.
💢💢💢💢💢💢💢💢💢💢
تفاضل بین فرسایش و انبساط حاصل از یک تصویر Gradient گویند.
برای تشخیص مرز شی مفید است.
💢💢💢💢💢💢💢💢💢💢
💢6. Top Hat💢
تفاضل بین تصویر اصلی و Opening را گویند.
کاربرد:
1) استخراج ویژگی 2) افزایش کیفیت عکس
3) ...
💢💢💢💢💢💢💢💢💢💢
تفاضل بین تصویر اصلی و Opening را گویند.
کاربرد:
1) استخراج ویژگی 2) افزایش کیفیت عکس
3) ...
💢💢💢💢💢💢💢💢💢💢
This media is not supported in your browser
VIEW IN TELEGRAM