در این مطلب، ویدئو آموزش OpenCV Python برای مبتدیان 27 – تطبیق الگو با استفاده از OpenCV در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:19:08
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,639
سلام بچه ها به ویدیوی بعدی
2
00:00:02,639 –> 00:00:04,830
آموزش CV باز برای مبتدیان با استفاده از
3
00:00:04,830 –> 00:00:07,440
پایتون خوش آمدید در این ویدیو در
4
00:00:07,440 –> 00:00:12,210
مورد تطبیق قالب در CB باز بحث خواهیم کرد، بنابراین
5
00:00:12,210 –> 00:00:14,480
اول از همه تطبیق قالب چیست،
6
00:00:14,480 –> 00:00:17,820
بنابراین تطبیق قالب یک روش
7
00:00:17,820 –> 00:00:21,090
جستجو و یافتن مکان یک
8
00:00:21,090 –> 00:00:25,769
الگو است. تصویر داخل یک تصویر بزرگتر در
9
00:00:25,769 –> 00:00:29,400
CV باز روشی به نام
10
00:00:29,400 –> 00:00:34,290
الگوی مطابقت برای دستیابی به این هدف وجود دارد، بنابراین
11
00:00:34,290 –> 00:00:36,120
بیایید شروع کنیم و
12
00:00:36,120 –> 00:00:39,420
مثالی در مورد آن ببینیم، بنابراین من این
13
00:00:39,420 –> 00:00:42,930
کد ساده را دارم که فقط این تصویر را بارگذاری می کند و
14
00:00:42,930 –> 00:00:47,160
بیایید ببینیم این تصویر چگونه است.
15
00:00:47,160 –> 00:00:50,700
این تصویر است و این تصویر درهم و برهم است
16
00:00:50,700 –> 00:00:54,000
و کاری که من میخواهم انجام دهم این است که میخواهم
17
00:00:54,000 –> 00:00:58,530
با الگوی صورت که دارم مطابقت داشته باشم
18
00:00:58,530 –> 00:01:01,890
که شبیه این است که
19
00:01:01,890 –> 00:01:06,650
الگوی کوچکتری است که در داخل این تصویر نیز موجود است،
20
00:01:06,650 –> 00:01:10,350
بنابراین مانند الگوی بریده شده عمل میکند.
21
00:01:10,350 –> 00:01:13,530
برای ما و ما سعی خواهیم کرد
22
00:01:13,530 –> 00:01:17,670
این الگو را در داخل این تصویر بزرگتر پیدا
23
00:01:17,670 –> 00:01:20,070
کنیم، بنابراین بیایید شروع کنیم و ببینیم
24
00:01:20,070 –> 00:01:23,460
چگونه می توانیم این الگو را در
25
00:01:23,460 –> 00:01:27,509
این تصویر بزرگتر جستجو کنیم، بنابراین اول از همه به چه
26
00:01:27,509 –> 00:01:30,470
چیزی نیاز داریم واضح است که ما باید
27
00:01:30,470 –> 00:01:35,009
این تصویر را بارگیری کنیم و همچنین الگوی خود را بارگیری کنیم،
28
00:01:35,009 –> 00:01:39,119
بنابراین قبل از بارگیری
29
00:01:39,119 –> 00:01:42,500
تصویر الگوی خود، من فقط
30
00:01:42,500 –> 00:01:45,210
تصویر اصلی خود را که تصویر بزرگتر است
31
00:01:45,210 –> 00:01:49,170
به تصویر مقیاس خاکستری تبدیل می کنم، بنابراین اعلام کردم که
32
00:01:49,170 –> 00:01:51,600
این متغیر تصویر زیر خط را ایجاد می
33
00:01:51,600 –> 00:01:54,270
کند و سپس من فقط می خواهم بگویم CV
34
00:01:54,270 –> 00:01:59,719
به نقطه C رنگ BT که
35
00:01:59,719 –> 00:02:03,530
تصویر من را تبدیل می کند من G هستم و بیایید
36
00:02:03,530 –> 00:02:08,300
این تصویر را به CV 2 نقطه
37
00:02:08,300 –> 00:02:12,150
زیرخط رنگی BG تبدیل کنیم حالا بیایید تصویر چهره
38
00:02:12,150 –> 00:02:14,250
خود را بارگذاری کنیم
39
00:02:14,250 –> 00:02:18,090
که به آن
40
00:02:18,090 –> 00:02:21,710
زیرخط نامرتب می گویند. dot jpg بنابراین من
41
00:02:21,710 –> 00:02:25,220
فقط این نام را تغییر می دهم merci underscore
42
00:02:25,220 –> 00:02:30,630
face dot jpg و این تصویر چهره ما خواهد بود
43
00:02:30,630 –> 00:02:33,690
یا همچنین می توانید بگویید این الگوی ما است
44
00:02:33,690 –> 00:02:36,300
و من این
45
00:02:36,300 –> 00:02:39,570
تصویر را به عنوان یک تصویر در مقیاس خاکستری بارگذاری می کنم بنابراین من
46
00:02:39,570 –> 00:02:41,460
m فقط آرگومان دوم را در
47
00:02:41,460 –> 00:02:44,220
متد read به صورت 0 ارسال می کنیم که
48
00:02:44,220 –> 00:02:47,370
این تصویر درهم و برهم را به عنوان یک تصویر در مقیاس خاکستری بارگذاری می کند،
49
00:02:47,370 –> 00:02:51,360
اکنون در خط بعدی ما به سادگی از
50
00:02:51,360 –> 00:02:53,670
این روش که به نام الگوی مطابقت نامیده می شود استفاده
51
00:02:53,670 –> 00:02:57,600
می کنیم و آن را در آن ذخیره می کنیم.
52
00:02:57,600 –> 00:03:01,260
برخی از متغیرها بنابراین ما فقط می توان گفت که
53
00:03:01,260 –> 00:03:08,520
re s برابر است با الگوی تطبیق نقطه ای CB 2
54
00:03:08,520 –> 00:03:10,620
که این روشی است که آرگومان کمی می گیرد
55
00:03:10,620 –> 00:03:14,550
اول تصویر ماست، بنابراین من می خواهم
56
00:03:14,550 –> 00:03:17,130
تصویر خاکستری خود را در اینجا منتقل کنم.
57
00:03:17,130 –> 00:03:19,980
آرگومان دوم در اینجا الگوی خواهد بود
58
00:03:19,980 –> 00:03:22,050
که ما سعی می کنیم آن را جستجو کنیم.
59
00:03:22,050 –> 00:03:25,590
در داخل این تصویر، بنابراین این الگوی ما خواهد بود
60
00:03:25,590 –> 00:03:30,990
، روش سوم روش است، بنابراین
61
00:03:30,990 –> 00:03:34,770
روش می تواند چندین روش باشد،
62
00:03:34,770 –> 00:03:37,650
چندین روش برای تطبیق الگو موجود است،
63
00:03:37,650 –> 00:03:39,990
بنابراین من می خواهم
64
00:03:39,990 –> 00:03:43,590
این روش ها را برای تطبیق الگو
65
00:03:43,590 –> 00:03:46,410
به شما نشان دهم تا بتوانید نوع تطبیق الگو را ببینید.
66
00:03:46,410 –> 00:03:50,370
عملیات و فرمول جداگانه
67
00:03:50,370 –> 00:03:53,670
ای برای مطابقت با آن الگو
68
00:03:53,670 –> 00:03:57,120
در داخل آن تصویر وجود دارد، بنابراین در حال حاضر ما می
69
00:03:57,120 –> 00:03:59,430
خواهیم از این روش استفاده کنیم که زیرخط TM است.
70
00:03:59,430 –> 00:04:03,600
71
00:04:03,600 –> 00:04:09,840
72
00:04:09,840 –> 00:04:12,570
این
73
00:04:12,570 –> 00:04:15,660
نتیجه را چاپ کنید و بیایید ببینیم محتوای
74
00:04:15,660 –> 00:04:18,870
داخل این نتیجه چیست، بنابراین من فقط
75
00:04:18,870 –> 00:04:22,230
محتوای داخل این نتیجه را
76
00:04:22,230 –> 00:04:24,690
که به دست آوردیم چاپ می کنم، بنابراین این کد را اجرا می کنم
77
00:04:24,690 –> 00:04:27,270
و این تصویر بارگذاری می شود
78
00:04:27,270 –> 00:04:31,520
اما در حال حاضر ما به این
79
00:04:31,520 –> 00:04:35,210
ماتریس آرایهای که در اینجا میبینید علاقهمندیم،
80
00:04:35,210 –> 00:04:38,849
بنابراین میتوانید ببینید وقتی این
81
00:04:38,849 –> 00:04:43,550
مقادیر را با دقت مشاهده میکنید، خواهید دید که همه
82
00:04:43,550 –> 00:04:48,000
مقادیر نسبتاً کوچکتری هستند، بنابراین میتوانید
83
00:04:48,000 –> 00:04:54,590
0.2 0.2 را ببینید که تقریباً هر مقدار در حدود
84
00:04:54,590 –> 00:04:58,050
–تا 0.3 است. حداکثر مقداری که
85
00:04:58,050 –> 00:05:02,550
در اینجا می توانم ببینم 0.3 است، بنابراین اجازه دهید
86
00:05:02,550 –> 00:05:05,550
یک بار دیگر این تصویر و الگو را
87
00:05:05,550 –> 00:05:09,539
نیز نشان دهم، بنابراین آنچه که این نتیجه شامل
88
00:05:09,539 –> 00:05:14,430
تمام مقادیر است و یک مقدار وجود خواهد داشت
89
00:05:14,430 –> 00:05:19,229
که شامل عدد به
90
00:05:19,229 –> 00:05:24,240
عنوان مثال نقطه 8 یا روشن ترین نقطه است.
91
00:05:24,240 –> 00:05:29,759
بسیار خوب، بنابراین اگر در اینجا این ماتریس حاوی
92
00:05:29,759 –> 00:05:33,690
مقداری باشد که مقدار 1 را داشته باشد، آن
93
00:05:33,690 –> 00:05:36,300
نقطه آزمایش روشن است و
94
00:05:36,300 –> 00:05:38,430
پس از اعمال این روش الگوی مطابقت، در داخل این تصویر
95
00:05:38,430 –> 00:05:41,130
وجود خواهد داشت که
96
00:05:41,130 –> 00:05:45,110
در این نقطه در این نقطه است که
97
00:05:45,110 –> 00:05:49,169
این الگو با آن مطابقت دارد. -گوشه سمت
98
00:05:49,169 –> 00:05:52,050
چپ این الگو، بنابراین در نقطهای
99
00:05:52,050 –> 00:05:56,099
که این گوشه سمت چپ بالای این تصویر
100
00:05:56,099 –> 00:06:00,270
با این تصویر بزرگ مطابقت دارد
101
00:06:00,270 –> 00:06:04,560
، روشنترین نقطه در آنجا وجود خواهد داشت و
102
00:06:04,560 –> 00:06:07,110
روشنترین نقطه در داخل منعکس میشود.
103
00:06:07,110 –> 00:06:12,509
این تصویر به شکل این عدد اعشاری
104
00:06:12,509 –> 00:06:15,139
و همه مقادیر دیگر
105
00:06:15,139 –> 00:06:20,490
کمی تیره تر خواهد بود مقادیر بسیار خوب، بنابراین
106
00:06:20,490 –> 00:06:23,430
این ماتریس از این ماتریس
107
00:06:23,430 –> 00:06:26,789
ما با گوشه سمت چپ بالای
108
00:06:26,789 –> 00:06:29,819
الگو در داخل این
109
00:06:29,819 –> 00:06:34,349
تصویر بزرگتر آشنا خواهیم شد، بنابراین اکنون چگونه می توان ما
110
00:06:34,349 –> 00:06:37,740
آن مقدار را که روشن ترین
111
00:06:37,740 –> 00:06:40,520
نقطه در این
112
00:06:40,520 –> 00:06:43,370
متریکس است فیلتر می کنیم، بنابراین تمام نقاطی که می توانید ببینید
113
00:06:43,370 –> 00:06:47,810
زیر 0.3 به نظر می رسند، اما در اینجا چند
114
00:06:47,810 –> 00:06:50,449
نقطه وجود دارد که می توانید سه نقطه را ببینید
115
00:06:50,449 –> 00:06:53,270
و هزاران و هزاران
116
00:06:53,270 –> 00:06:57,500
مقدار وجود دارد که در اینجا همه مقادیر در دسترس خواهند بود.
117
00:06:57,500 –> 00:07:01,250
خوب چاپ نمی شوند، بنابراین کاری که
118
00:07:01,250 –> 00:07:03,379
می خواهیم انجام دهیم این است که سعی
119
00:07:03,379 –> 00:07:06,080
می کنیم روشن ترین نقطه
120
00:07:06,080 –> 00:07:09,610
را پیدا کنیم تا بتوانیم با روش numpy دریابیم
121
00:07:09,610 –> 00:07:13,430
روشی به نام ما استفاده
122
00:07:13,430 –> 00:07:16,520
می کنیم که می توانیم پیدا کنیم یا فیلتر کنیم.
123
00:07:16,520 –> 00:07:18,650
مقادیری که از عدد معینی بزرگتر هستند،
124
00:07:18,650 –> 00:07:23,150
بنابراین ابتدا
125
00:07:23,150 –> 00:07:26,830
متغیری به نام آستانه را
126
00:07:26,830 –> 00:07:29,659
برابر با مقدار آستانه اعلام می کنم که
127
00:07:29,659 –> 00:07:32,630
در ابتدا مقدار آستانه را 0.8 اعلام
128
00:07:32,630 –> 00:07:36,669
می کنم که نقطه نسبتاً روشن تر خواهد بود
129
00:07:36,669 –> 00:07:40,479
. در کنار ماتریسی که
130
00:07:40,479 –> 00:07:45,020
با استفاده از این متغیر نتیجه درست دریافت
131
00:07:45,020 –> 00:07:48,710
می کنیم، متدی به نام
132
00:07:48,710 –> 00:07:51,169
Where numpy وجود دارد که در آن، من یک بار
133
00:07:51,169 –> 00:07:56,150
دیگر متغیر LOC و سپس P dot where
134
00:07:56,150 –> 00:08:00,550
متد را اعلام می کنم و در اینجا نتیجه خود را ارسال
135
00:08:00,550 –> 00:08:03,889
می کنیم. گرفتیم و ما
136
00:08:03,889 –> 00:08:07,520
با استفاده از این عبارت فیلتر می کنیم، بنابراین این
137
00:08:07,520 –> 00:08:09,949
یک عبارت بولی خواهد بود، بنابراین من
138
00:08:09,949 –> 00:08:12,469
فقط می گویم تمام
139
00:08:12,469 –> 00:08:15,979
مقادیری را که بزرگتر یا مساوی
140
00:08:15,979 –> 00:08:20,330
آستانه داخل این
141
00:08:20,330 –> 00:08:24,259
ماتریس نتیجه هستند به من بدهید، خوب، بنابراین روش اینجاست.
142
00:08:24,259 –> 00:08:27,740
فقط میخواهیم این عبارت را ارزیابی کنیم
143
00:08:27,740 –> 00:08:30,919
، هر یک از مقادیر ارزیابی میشوند
144
00:08:30,919 –> 00:08:34,279
و اگر این مقدار در داخل ماتریس
145
00:08:34,279 –> 00:08:38,899
بزرگتر از 0.8 باشد که آستانه ما است،
146
00:08:38,899 –> 00:08:43,039
آن مقادیر را به
147
00:08:43,039 –> 00:08:45,620
ما میدهد، پس بیایید پس
148
00:08:45,620 –> 00:08:49,370
از فیلتر کردن اکثر موارد، آن مقادیر را چاپ کنیم. مقادیر
149
00:08:49,370 –> 00:08:53,570
و اجازه دهید فقط این متغیر LOC را چاپ کنیم،
150
00:08:53,570 –> 00:08:53,930
همچنین
151
00:08:53,930 –> 00:08:55,910
من می خواهم این کد را یک بار دیگر اجرا کنم
152
00:08:55,910 –> 00:09:00,860
و می توانید اینجا را ببینید که این ماتریسی است
153
00:09:00,860 –> 00:09:04,610
که ما به دست آوردیم، بنابراین می توانید ببینید این
154
00:09:04,610 –> 00:09:07,520
آرایه ای است که ما دریافت کرده
155
00:09:07,520 –> 00:09:10,160
ایم. این آستانه را کوچک کنید
156
00:09:10,160 –> 00:09:13,520
تا فقط یک نقطه را بیابید، بنابراین چندین
157
00:09:13,520 –> 00:09:16,850
نقطه در اینجا وجود دارد، بنابراین فرض کنید میخواهم
158
00:09:16,850 –> 00:09:21,440
این مقدار را به 0.9 افزایش
159
00:09:21,440 –> 00:09:24,440
دهم و اجازه دهید دوباره این کد را اجرا کنیم و
160
00:09:24,440 –> 00:09:29,570
فقط دو نقطه 85 و 220 را خواهید دید
161
00:09:29,570 –> 00:09:32,660
.