ترمیم بریدگی لبه - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

ترمیم بریدگی لبه

+1 امتیاز

سلام و درود



همونطور که مشاهده می کنید یه خط یا بهتر بگم یه لبه(canny) از تصویر که بریده شده.

می خوام داخل این محیط رو با رنگ سفید پر کنم ولی متاسفانه به خاطر این بریدگی که تصویر من رو سفید می کنه.!
آیا میشه این بریدگی که بصورت پراکنده در لبه ها هست ترمیم کرد؟
اگه بشه لبه ها رو تقویت کرد فکر کنم بشه یک کارایی کرد/

سوال شده اردیبهشت 6, 1394  بوسیله ی Manam (امتیاز 35)   4 6 7
ویرایش شده اردیبهشت 6, 1394 بوسیله ی مصطفی ساتکی

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

شما برای پرکردن این راه دو روش دارید.

روش اول که بر پایه مورفولوژی هستش شما می بایست از عملگر closing استفاده کنید برای جزئیات بیتشر به این پست مراجعه کنید.

void test(){
	Mat img = imread("d:/1.png", 0);
	Mat dst;
	

	int morph_size = 10;
	Mat element = getStructuringElement(MORPH_RECT, Size(2 * morph_size + 1, 2 * morph_size + 1), Point(morph_size, morph_size));
	cv::morphologyEx(img, dst, cv::MORPH_CLOSE,element);
	imshow("dst", dst);
	waitKey(0);
}

روش دوم از تصویر اسکلتون استفاده کنید و کلیه نقاط ترمینال نقاطی که فقط یک همسایه سفید دارند را پیدا کرده و چنانچه در همسایگی مشخص از هم باشند یا به عبارت دیگر فاصله اقلیدیسی آنها کمتر از مقدار مشخص باشد آنها را به هم متصل نماید.

پاسخ داده شده اردیبهشت 6, 1394 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اردیبهشت 7, 1394 بوسیله ی Manam
مهندس میشه دستورات رو توضیح بدید با تشکر.
بطور مختصر.

در مورد خواندن و ذخیره سازی تصویر از این لینک استفاده کنید. در مورد structing element هم در لینکی که در خود پست در مورد مورفولوژی گذاشتم توضیح دادم و دستور imshow هم برای نمایش تصویر مورد استفاده قرار می گیره.

...