در این مطلب، ویدئو OpenCV Python Tutorial For Beginners 17 – Transformations Morphological با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:22:17
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,520
سلام بچه ها به ویدیوی بعدی
2
00:00:02,520 –> 00:00:04,710
آموزش باز کردن CV برای مبتدیان با استفاده از
3
00:00:04,710 –> 00:00:07,170
پایتون خوش آمدید در این ویدیو ما قصد داریم
4
00:00:07,170 –> 00:00:09,540
در مورد
5
00:00:09,540 –> 00:00:13,200
تحولات مورفولوژیکی در CV باز بحث کنیم، بنابراین ما در
6
00:00:13,200 –> 00:00:15,299
مورد عملیات مورفولوژیکی مختلف
7
00:00:15,299 –> 00:00:19,320
مانند
8
00:00:19,320 –> 00:00:23,460
روش های باز کردن و بسته شدن اتساع فرسایش و غیره صحبت خواهیم کرد، اما اول از همه
9
00:00:23,460 –> 00:00:27,050
چیزهایی که هستند. تبدیلهای ریختشناختی،
10
00:00:27,050 –> 00:00:30,300
بنابراین تبدیلهای ریختشناختی
11
00:00:30,300 –> 00:00:34,020
برخی از عملیاتهای ساده بر اساس
12
00:00:34,020 –> 00:00:37,469
شکل تصویر هستند، اکنون
13
00:00:37,469 –> 00:00:40,020
تبدیل مورفولوژیکی معمولاً روی
14
00:00:40,020 –> 00:00:44,070
یک تصویر باینری انجام میشود و وقتی
15
00:00:44,070 –> 00:00:47,129
تبدیل مورفولوژیکی را انجام میدهیم،
16
00:00:47,129 –> 00:00:50,190
دو چیز لازم است اول
17
00:00:50,190 –> 00:00:53,670
تصویر اصلی و دوم
18
00:00:53,670 –> 00:00:57,739
عنصر ساختاری یا ساختاری نامیده میشود. هسته ای که
19
00:00:57,739 –> 00:01:02,129
ماهیت عملیات را تعیین می کند اکنون
20
00:01:02,129 –> 00:01:03,539
انواع مختلفی از
21
00:01:03,539 –> 00:01:06,630
تبدیلات مورفولوژیکی وجود دارد و ما
22
00:01:06,630 –> 00:01:09,180
می خواهیم آنها را یکی یکی ببینیم تا
23
00:01:09,180 –> 00:01:11,700
شروع کنیم. من این کد ساده را دارم که
24
00:01:11,700 –> 00:01:15,479
تصویر را با استفاده از CV باز می
25
00:01:15,479 –> 00:01:19,020
خواند. اگر می خواهید،
26
00:01:19,020 –> 00:01:22,500
اکنون فقط این تصویر را با استفاده از matplotlib بارگیری یا
27
00:01:22,500 –> 00:01:24,900
نشان دهید با matplotlib
28
00:01:24,900 –> 00:01:28,259
و نحوه استفاده از matplotlib برای نشان دادن تصاویر
29
00:01:28,259 –> 00:01:31,680
در آخرین ویدیو آشنا نیستم، من این موضوع را با جزئیات توضیح داده ام،
30
00:01:31,680 –> 00:01:35,520
بنابراین اگر می خواهید
31
00:01:35,520 –> 00:01:39,150
آن ویدیو را در مورد matplotlib ببینید، می توانید
32
00:01:39,150 –> 00:01:42,570
آن را ببینید و این کدی است که من در آخرین ویدیو استفاده کرده ام.
33
00:01:42,570 –> 00:01:44,909
و من
34
00:01:44,909 –> 00:01:47,939
این کد را با جزئیات در ویدیوی آخر توضیح داده ام،
35
00:01:47,939 –> 00:01:51,509
بنابراین اگر گیج شده اید که
36
00:01:51,509 –> 00:01:54,030
این کد چه کار می کند، فقط آخرین
37
00:01:54,030 –> 00:01:56,850
ویدیو را ببینید اکنون یک نکته مهم وجود دارد که
38
00:01:56,850 –> 00:02:00,299
باید به آن توجه کنید این است که من دارم این
39
00:02:00,299 –> 00:02:04,770
تصویر را در حالت خاکستری می خوانم، خوب است، بنابراین یا
40
00:02:04,770 –> 00:02:07,140
شما می توانید اینجا را به عنوان دومین
41
00:02:07,140 –> 00:02:10,590
آرگومان I am read CV 2 dot I
42
00:02:10,590 –> 00:02:13,950
‘m readed underscore grayscale ارائه دهید یا می توانید
43
00:02:13,950 –> 00:02:16,379
به سادگی صفر را اینجا برای خواندن این
44
00:02:16,379 –> 00:02:18,989
تصویر در مقیاس خاکستری ارائه دهید، بنابراین بیایید این کد را اجرا کنیم
45
00:02:18,989 –> 00:02:21,900
و ببینیم چه کاری انجام می دهد تا همانطور که
46
00:02:21,900 –> 00:02:25,739
انتظار می رود. فقط
47
00:02:25,739 –> 00:02:30,390
با استفاده از matplotlib تصویر را در حالت خاکستری باز کنید،
48
00:02:30,390 –> 00:02:33,989
همانطور که گفتم به طور معمول، ما
49
00:02:33,989 –> 00:02:36,989
تبدیلات مورفولوژیکی را روی
50
00:02:36,989 –> 00:02:39,930
تصاویر باینری انجام می دهیم، به همین دلیل باید
51
00:02:39,930 –> 00:02:43,200
با استفاده از آستانه ساده، ماسکی برای تصویر خود ارائه دهیم.
52
00:02:43,200 –> 00:02:46,680
بیایید این کار را انجام دهیم،
53
00:02:46,680 –> 00:02:47,280
54
00:02:47,280 –> 00:02:50,459
بنابراین من فقط
55
00:02:50,459 –> 00:02:54,349
ماسک را با کاما زیر خط می نویسم، بنابراین
56
00:02:54,349 –> 00:02:58,500
متغیر خود را به عنوان mask در اینجا نام می برم و سپس
57
00:02:58,500 –> 00:03:02,790
فقط آستانه نقطه cb2 را می نویسم و این آس
58
00:03:02,790 –> 00:03:05,489
انه همانطور که قبلاً ممکن است آرگومان کمی می گی
59
00:03:05,489 –> 00:03:09,030
د. حدس بزنید اول خود تصویر است،
60
00:03:09,030 –> 00:03:11,640
آرگومان دوم مقدار
61
00:03:11,640 –> 00:03:14,519
آستانه است، بنابراین در حال حاضر
62
00:03:14,519 –> 00:03:18,780
فقط آستانه 220 را در اینجا ارائه می کنم،
63
00:03:18,780 –> 00:03:22,069
حداکثر مقدار آستانه 255 خواهد بود،
64
00:03:22,069 –> 00:03:26,069
سپس آرگومان بعدی در اینجا
65
00:03:26,069 –> 00:03:28,049
نوع آستانه است، بنابراین ما قرار است
66
00:03:28,049 –> 00:03:33,690
معکوس دودویی C v2 dot thrash ارائه دهیم،
67
00:03:33,690 –> 00:03:37,620
بنابراین این ماسک ما است، بنابراین اجازه دهید
68
00:03:37,620 –> 00:03:41,910
ماسک را در پنجره matplotlib بارگذاری کنیم، بنابراین
69
00:03:41,910 –> 00:03:43,889
من فقط در این
70
00:03:43,889 –> 00:03:48,090
آرایه عنوان یک عنوان دیگر که mask است ارائه می کنم و
71
00:03:48,090 –> 00:03:52,200
سپس می خواهیم ببینیم چگونه این تصویر به
72
00:03:52,200 –> 00:03:56,340
نظر می رسد بعد از ماسک خوب است و در
73
00:03:56,340 –> 00:03:58,650
اینجا محدوده را می خواهم به دو افزایش دهم
74
00:03:58,650 –> 00:04:01,590
زیرا اکنون آرایه از دو
75
00:04:01,590 –> 00:04:05,579
عنصر است و طرح فرعی نیز
76
00:04:05,579 –> 00:04:09,269
فرض کنید 1 در 2 است بنابراین می خواهیم دو تصویر را نشان دهیم
77
00:04:09,269 –> 00:04:11,400
و من فقط این کد را اجرا
78
00:04:11,400 –> 00:04:15,840
میکنید و میبینید که t بود او تصویری که
79
00:04:15,840 –> 00:04:17,820
یک تصویر در مقیاس خاکستری بود و تصویر دوم
80
00:04:17,820 –> 00:04:22,710
تصویر ماسکدار است حالا اگر این
81
00:04:22,710 –> 00:04:25,650
تصویر را با دقت میبینید اجازه دهید فقط
82
00:04:25,650 –> 00:04:27,720
اندازه آن را افزایش دهم
83
00:04:27,720 –> 00:04:30,990
و اگر بعد از پوشاندن این تصویر را با دقت دیدید
84
00:04:30,990 –> 00:04:35,130
، چند نقطه سیاه
85
00:04:35,130 –> 00:04:39,300
در اینجا روی توپها وجود دارد و فرض کنید
86
00:04:39,300 –> 00:04:43,740
میخواهیم این نقاط را که در
87
00:04:43,740 –> 00:04:46,920
بین این ناحیه سفید وجود دارد، این نقطه سیاه
88
00:04:46,920 –> 00:04:49,860
یا این نقطه سیاه را حذف کنیم یا میتوانید ببینید که چند
89
00:04:49,860 –> 00:04:54,600
نقطه سیاه در داخل توپ شما در
90
00:04:54,600 –> 00:04:57,510
ناحیه گاز گرفتن وجود دارد و میخواهیم
91
00:04:57,510 –> 00:05:01,920
این نقاط را از توپها حذف کنیم. این ما
92
00:05:01,920 –> 00:05:05,600
می خواهیم از تبدیل اتساع استفاده کنیم،
93
00:05:05,600 –> 00:05:08,820
بنابراین اول از همه کاری که
94
00:05:08,820 –> 00:05:10,920
می خواهیم انجام دهیم این است که فقط می خواهیم
95
00:05:10,920 –> 00:05:14,610
اتساع را بنویسیم که
96
00:05:14,610 –> 00:05:17,970
نام متغیر ما خواهد بود و سپس
97
00:05:17,970 –> 00:05:23,270
از این روش به نام CB برای اتساع نقطه ای استفاده
98
00:05:23,270 –> 00:05:28,740
می کنیم. متد از منبعی استفاده می کند
99
00:05:28,740 –> 00:05:34,230
که در مورد ما ماسک است و سپس
100
00:05:34,230 –> 00:05:38,100
دومین چیز این است که هسته اوکی است، بنابراین اجازه
101
00:05:38,100 –> 00:05:41,580
دهید توضیح دهم که هسته چیست، بنابراین یک
102
00:05:41,580 –> 00:05:45,630
هسته معمولا یک مربع یا
103
00:05:45,630 –> 00:05:49,200
شکلی است که می خواهیم روی
104
00:05:49,200 –> 00:05:52,800
تصویر اعمال کنیم، بنابراین می خواهیم de یک
105
00:05:52,800 –> 00:05:56,970
کرنل numpy یک بار خوب است، به این معنی که ما می خواهیم
106
00:05:56,970 –> 00:06:01,620
مربع سفید را روی توپ های خود اعمال کنیم، بنابراین می
107
00:06:01,620 –> 00:06:04,350
توانید ببینید زمانی که کد خود را یک بار دیگر اجرا
108
00:06:04,350 –> 00:06:07,620
می کنیم، خطا را به ما نشان می دهد زیرا این هسته
109
00:06:07,620 –> 00:06:10,230
تعریف نشده است، بنابراین اجازه دهید ابتدا این هسته را تعریف
110
00:06:10,230 –> 00:06:12,120
کنم تا من فقط یک بار می گوییم
111
00:06:12,120 –> 00:06:17,669
هسته برابر است و نقطه P و
112
00:06:17,669 –> 00:06:22,280
سپس شکل
113
00:06:22,280 –> 00:06:26,040
این هسته را تعریف می کنیم، فرض کنید اندازه آن 2 کاما
114
00:06:26,040 –> 00:06:31,890
2 است و سپس فقط می گوییم NP dot
115
00:06:31,890 –> 00:06:35,850
u int 8 پس این سرهنگ ما است و
116
00:06:35,850 –> 00:06:38,760
سرهنگ در این مورد چیزی نیست جز یک
117
00:06:38,760 –> 00:06:41,680
گوسفند مربع 2
118
00:06:41,680 –> 00:06:44,979
×2 و این هسته مربع شکل
119
00:06:44,979 –> 00:06:48,009
قرار است روی تصویر ما اعمال شود
120
00:06:48,009 –> 00:06:51,400
هر کجا که این نقاط سیاه وجود داشته باشد، بنابراین
121
00:06:51,400 –> 00:06:54,070
اکنون این هسته را تعریف کرده ایم، پس بیایید
122
00:06:54,070 –> 00:06:58,780
ببینیم بعد از اعمال این هسته روی
123
00:06:58,780 –> 00:07:02,770
تصویر ماسک شده ما چگونه است. به نظر می رسد که
124
00:07:02,770 –> 00:07:05,139
من فقط یک عنوان دیگر را در اینجا اضافه
125
00:07:05,139 –> 00:07:08,380
می کنم که اتساع است و سپس
126
00:07:08,380 –> 00:07:11,710
تصویر را بعد از اعمال اتساع روی تصویرمان اضافه می
127
00:07:11,710 –> 00:07:16,240
کنم و سپس
128
00:07:16,240 –> 00:07:18,250
فقط می خواهیم محدوده را به سه افزایش دهیم
129
00:07:18,250 –> 00:07:20,440
زیرا اکنون ما سه تصویر داریم
130
00:07:20,440 –> 00:07:25,050
و بیایید بگوییم این طرح باطل تصاویر را
131
00:07:25,050 –> 00:07:29,320
یک به سه تغییر می دهد، بنابراین یک سطر و سه
132
00:07:29,320 –> 00:07:32,320
ستون درست می شود، بنابراین من فقط
133
00:07:32,320 –> 00:07:35,080
یک بار دیگر این کد را اجرا می کنم و اکنون می توانید
134
00:07:35,080 –> 00:07:38,320
تمام این سه تصویر را ببینید اول
135
00:07:38,320 –> 00:07:41,289
تصویر اصلی بود، دوم تصویر ماسک
136
00:07:41,289 –> 00:07:44,919
شده و سومین تصویر
137
00:07:44,919 –> 00:07:48,490
که بعد از اعمال اتساع به دست آوردیم،
138
00:07:48,490 –> 00:07:51,159
اجازه دهید
139
00:07:51,159 –> 00:07:55,539
اندازه این تصویر را به نحوی افزایش دهم، بنابراین اکنون می توانید ببینید
140
00:07:55,539 –> 00:08:00,220
که به عنوان مثال اینجا یک نقطه سیاه وجود دارد
141
00:08:00,220 –> 00:08:04,030
و اکنون درست کاهش یافته است،
142
00:08:04,030 –> 00:08:07,330
اندازه این نقطه سیاه در اینجا نیز کاهش یافته است
143
00:08:07,330 –> 00:08:10,419
. نقطه سیاه اما اندازه آن
144
00:08:10,419 –> 00:08:14,289
نیز کاهش یافته است، اما هنوز هم میتوانیم این
145
00:08:14,289 –> 00:08:17,800
نقاط سیاه را در اینجا ببینیم، بنابراین چگونه میتوانیم
146
00:08:17,800 –> 00:08:21,610
این نقاط سیاه را به طور کامل حذف کنیم، بنابراین
147
00:08:21,610 –> 00:08:25,090
پارامتر سومی وجود دارد که
148
00:08:25,090 –> 00:08:28,930
میتوانیم به این روش گشاد ارائه دهیم که به
149
00:08:28,930 –> 00:08:32,078
آن تکرار میگویند، بنابراین تعداد تکرارها
150
00:08:32,078 –> 00:08:35,740
فقط می توان تکرارها را ارائه کرد
151
00:08:35,740 –> 00:08:39,578
برابر است با تعداد دفعاتی که
152
00:08:39,578 –> 00:08:42,610
می خواهیم روی تصویر خود اتساع انجام دهیم به
153
00:08:42,610 –> 00:08:46,450
طور پیش فرض 1 است و شما می توانید
154
00:08:46,450 –> 00:08:49,060
فرض کنید 2 را در اینجا ارائه دهید و ببینیم
155
00:08:49,060 –> 00:08:51,970
نتیجه اکنون چیست، بنابراین من فقط این را اجرا می کنم
156
00:08:51,970 –> 00:08:55,510
دوباره کد کنید و اکنون می توانید
157
00:08:55,510 –> 00:08:58,449
آن نقاط سیاهی را که می توانیم در اینجا
158
00:08:58,449 –> 00:09:02,920
روی تصویر ماسک دیده ببینیم، اکنون به تدریج
159
00:09:02,920 –> 00:09:07,060
از بین رفته اند، اما هنوز هم می توانم چند
160
00:09:07,060 –> 00:09:10,329
نقطه کوچک روی تصاویر ببینم، نقاط کوچک
161
00:09:10,329 –> 00:09:15,220
قبلاً از بین رفته اند، بنابراین اکنون آنچه می توانیم اینجا انجام دهیم
162
00:09:15,220 –> 00:09:17,649
این است که ما می تواند اندازه مستطیل را افزایش دهد
163
00:09:17,649 –> 00:09:20,829
بنابراین این مستطیل در
164
00:09:20,829 –> 00:09:26,320
ناحیه ما که دارای این نقاط است اعمال می شود تا
165
00:09:26,320 –> 00:09:30,370
بتوانیم اندازه مستطیل را افزایش دهیم و هر چه
166
00:09:30,370 –> 00:09:34,750
مستطیل بزرگتر باشد
167
00:09:34,750 –> 00:09:37,870
نتیجه بهتر می شود اما
168
00:09:37,870 –> 00:09:39,880
مشکلی وجود دارد که من هستم قرار است به شما نشان دهم
169
00:09:39,880 –> 00:09:42,850
پس بیایید این کد را اجرا کنیم و اکنون می توانید ببینید
170
00:09:42,850 –> 00:09:48,279
که تمام نقاط سیاه تصویر ما از
171
00:09:48,279 –> 00:09:51,639
بین رفته اند، بنابراین یک نقطه سیاه در اینجا وجود دارد که دیگر آن
172
00:09:51,639 –> 00:09:54,339
را نمی بینید و یک
173
00:09:54,339 –> 00:09:58,029
نقطه سیاه اینجا اینجا اینجا و اینجا وجود دارد و ما
174
00:09:58,029 –> 00:10:01,870
این نقاط سیاه را در اینجا نبینید، اما
175
00:10:01,870 –> 00:10:06,100
ممکن است مشاهده کنید که اندازه این
176
00:10:06,100 –> 00:10:10,269
ناحیه سفید نیز پس از
177
00:10:10,269 –> 00:10:14,199
اعمال اتساع روی این
178
00:10:14,199 –> 00:10:17,589
تصویر ماسکدار افزایش مییابد، بنابراین اکنون این توپ و این توپ
179
00:10:17,589 –> 00:10:21,519
در نتیجه پس از اتساع در اینجا ادغام میشوند
180
00:10:21,519 –> 00:10:24,339
. می توانید ببینید که ادغام است g
181
00:10:24,339 –> 00:10:27,970
زیرا اندازه هسته ما بزرگ است
182
00:10:27,970 –> 00:10:30,730
و وقتی اتساع اعمال می کنیم عنصر پیکسل
183
00:10:30,730 –> 00:10:34,089
یک است اگر حداقل یک پیکسل
184
00:10:34,089 –> 00:10:37,149
زیر هسته یکی باشد به همین دلیل است که
185
00:10:37,149 –> 00:10:42,519
شکل این توپ ها در حال افزایش است بنابراین
186
00:10:42,519 –> 00:10:45,250
بیایید ببینیم تبدیل مورفولوژیکی بعدی ما چگونه
187
00:10:45,250 –> 00:10:47,110
کار می کند. به نام
188
00:10:47,110 –> 00:10:50,290
erosion و بعد از آن به
189
00:10:50,290 –> 00:10:54,010
شما توضیح می دهم که این فرسایش چگونه کار می کند و
190
00:10:54,010 –> 00:10:56,410
فرسایش چیست، بنابراین من فقط