در این مطلب، ویدئو آموزش OpenCV Python برای مبتدیان 29 – تبدیل خط Hough با استفاده از روش HoughLines در OpenCV با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:12:42
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,310
سلام بچه ها خوش آمدید با ویدیوی بعدی
2
00:00:02,310 –> 00:00:04,650
آموزش CV باز برای مبتدیان با استفاده از
3
00:00:04,650 –> 00:00:07,620
پایتون در آخرین ویدیو ما یک
4
00:00:07,620 –> 00:00:10,590
معرفی مختصر توری در مورد تبدیل نیم خط را دیدیم
5
00:00:10,590 –> 00:00:14,130
بنابراین به شما گفتم که
6
00:00:14,130 –> 00:00:16,980
CV باز دو نوع تبدیل نیم خط را پیاده سازی می کند که
7
00:00:16,980 –> 00:00:20,369
یکی نیمه استاندارد است.
8
00:00:20,369 –> 00:00:23,100
تبدیل خط با استفاده از روش نیم خط
9
00:00:23,100 –> 00:00:26,970
و دومی تبدیل احتمالی نیم
10
00:00:26,970 –> 00:00:30,869
خط با استفاده از روش نیم خط
11
00:00:30,869 –> 00:00:35,340
P بزرگ است، بنابراین ما قصد داریم
12
00:00:35,340 –> 00:00:38,850
در این ویدیو از روش نیم خط استفاده کنیم و ببینیم چگونه
13
00:00:38,850 –> 00:00:41,489
می توانیم از این روش نیم خط برای
14
00:00:41,489 –> 00:00:45,780
تشخیص خطوط داخل یک استفاده کنیم. تصویر با استفاده از نیم
15
00:00:45,780 –> 00:00:50,219
تبدیل در حال حاضر من همچنین به شما گفتم
16
00:00:50,219 –> 00:00:53,789
که چهار مرحله مربوط به نیم
17
00:00:53,789 –> 00:00:57,000
تبدیل وجود دارد، بنابراین مرحله اول
18
00:00:57,000 –> 00:01:00,329
مرحله تشخیص لبه با استفاده از هر
19
00:01:00,329 –> 00:01:03,270
روش تشخیص لبه ترجیحاً تشخیص لبهای بود،
20
00:01:03,270 –> 00:01:07,220
مرحله دوم نگاشت نقاط لبه
21
00:01:07,220 –> 00:01:11,580
به نیمه فاصله است. این
22
00:01:11,580 –> 00:01:14,820
نقاط لبه را در یک انباشته ذخیره کنید.
23
00:01:14,820 –> 00:01:16,619
مرحله سوم تعبیر
24
00:01:16,619 –> 00:01:19,799
انباشت کننده به خطوط با طول بی نهایت
25
00:01:19,799 –> 00:01:22,710
و مرحله چهارم
26
00:01:22,710 –> 00:01:26,130
تبدیل شد. n از این خطوط به خطوط محدود،
27
00:01:26,130 –> 00:01:30,950
بنابراین فرض کنید ما این تصویر از
28
00:01:30,950 –> 00:01:34,890
این نقطه سودوکو PNG را داریم و میتوانید تمام
29
00:01:34,890 –> 00:01:37,079
این خطوط را در اینجا ببینید که میخواهیم آنها
30
00:01:37,079 –> 00:01:39,420
را شناسایی کنیم، بنابراین این یک خط است و
31
00:01:39,420 –> 00:01:42,420
این خط است، بنابراین همه این خطوط را میخواهیم
32
00:01:42,420 –> 00:01:44,790
شناسایی با استفاده از گشت و گذار نیم خط و
33
00:01:44,790 –> 00:01:46,890
تبدیل، بنابراین من قبلاً
34
00:01:46,890 –> 00:01:50,189
این کد را نوشته ام، بنابراین می خواهم
35
00:01:50,189 –> 00:01:55,350
گام به گام توضیح دهم که چگونه این کد کار می کند، بنابراین
36
00:01:55,350 –> 00:01:57,840
در مرحله اول فقط باید
37
00:01:57,840 –> 00:02:00,869
c v2 معمولی و numpy را به عنوان
38
00:02:00,869 –> 00:02:04,799
NP وارد کنید سپس در اینجا من فقط این
39
00:02:04,799 –> 00:02:08,310
تصویر را با استفاده از روش I am read می خوانم و در
40
00:02:08,310 –> 00:02:11,430
مرحله بعدی این تصویر را به یک تصویر در مقیاس خاکستری تبدیل می کنم
41
00:02:11,430 –> 00:02:13,950
و آن
42
00:02:13,950 –> 00:02:16,110
را در این متغیر ذخیره می کنم که بسیار عالی است
43
00:02:16,110 –> 00:02:19,500
زیرا برای تشخیص لبه کنی
44
00:02:19,500 –> 00:02:22,860
ترجیح داده می شود که تصاویر سیاه و سفید
45
00:02:22,860 –> 00:02:26,360
به جای عادی شما باشد. تصاویر رنگی
46
00:02:26,360 –> 00:02:31,020
اکنون در مرحله بعدی
47
00:02:31,020 –> 00:02:33,420
روش تشخیص لبه کنی را بر روی این
48
00:02:33,420 –> 00:02:36,990
تصویر در مقیاس خاکستری اعمال می کنیم، بنابراین در اینجا این
49
00:02:36,990 –> 00:02:40,140
روش کنی نقطه cb2 این آرگومان ها را می گیرد.
50
00:02:40,140 –> 00:02:42,870
51
00:02:42,870 –> 00:02:45,180
52
00:02:45,180 –> 00:02:47,850
آستانه d بنابراین من
53
00:02:47,850 –> 00:02:50,580
آستانه اول را 50 و آستانه دوم را
54
00:02:50,580 –> 00:02:54,720
در اینجا 150 و آرگومان 4 را در اینجا
55
00:02:54,720 –> 00:02:57,690
56
00:02:57,690 –> 00:03:02,640
می دهم و اندازه دیافراگم را برابر با 3 می کنم اکنون در مرحله بعد از
57
00:03:02,640 –> 00:03:05,250
این روش نیم خط استفاده می کنم.
58
00:03:05,250 –> 00:03:08,570
روش تبدیل که در OpenCV پیاده سازی شده است،
59
00:03:08,570 –> 00:03:13,260
اکنون این روش نیم خط آرگومان کمی می گیرد
60
00:03:13,260 –> 00:03:16,739
، اولین آرگومان
61
00:03:16,739 –> 00:03:21,600
تصویر است، بنابراین ما فقط این
62
00:03:21,600 –> 00:03:25,049
تصویر یال شناسایی شده را به
63
00:03:25,049 –> 00:03:29,310
آرگومان اول این روش نیم خط منتقل می
64
00:03:29,310 –> 00:03:31,560
کنیم. آرگومان دوم در اینجا مقدار
65
00:03:31,560 –> 00:03:34,140
ردیف این ردیف است. مقدار
66
00:03:34,140 –> 00:03:37,790
رزولوشن فاصله انباشتگر بر حسب پیکسل است که
67
00:03:37,790 –> 00:03:41,880
معمولاً 1 در نظر گرفته میشود. مقدار سوم
68
00:03:41,880 –> 00:03:45,709
مقدار تتا است که
69
00:03:45,709 –> 00:03:49,620
وضوح زاویه انباشتگر بر حسب رادیان است،
70
00:03:49,620 –> 00:03:52,980
بنابراین ما فقط از numpy استفاده میکنیم، بنابراین NP
71
00:03:52,980 –> 00:03:56,880
نقطه pi تقسیم بر 180 است، بنابراین این نیز برابر است.
72
00:03:56,880 –> 00:03:59,579
معمولی در این روش و آرگومان بعدی
73
00:03:59,579 –> 00:04:01,470
در اینجا پارامتر آستانه انباشته
74
00:04:01,470 –> 00:04:05,519
است، پس این به چه
75
00:04:05,519 –> 00:04:08,459
معناست که یک آستانه است، بنابراین فقط آن
76
00:04:08,459 –> 00:04:11,370
خطوطی برگردانده می شوند که به اندازه کافی چوب
77
00:04:11,370 –> 00:04:14,310
می گیرند، یعنی آن li nes برگردانده می شود
78
00:04:14,310 –> 00:04:17,430
که آستانه بزرگتر
79
00:04:17,430 –> 00:04:20,548
از این مقدار دارند، بنابراین مقدار شروع را در
80
00:04:20,548 –> 00:04:25,260
اینجا 200 به عنوان آستانه در نظر گرفتم، بنابراین اکنون
81
00:04:25,260 –> 00:04:27,540
این روش نیم خطی قرار است
82
00:04:27,540 –> 00:04:31,980
بردار خروجی خطوط را برگرداند، اکنون
83
00:04:31,980 –> 00:04:34,710
به شما توضیح دادم که
84
00:04:34,710 –> 00:04:38,040
مختصات قطبی برای Hough چگونه کار می کند.
85
00:04:38,040 –> 00:04:42,630
در ویدیوی آخر تبدیل کنید بنابراین این خطوط
86
00:04:42,630 –> 00:04:46,290
در مختصات قطبی قرار می گیرند بنابراین هر
87
00:04:46,290 –> 00:04:48,810
خط با دو یا سه
88
00:04:48,810 –> 00:04:52,800
بردار عنصر Rho و تتا یا Rho
89
00:04:52,800 –> 00:04:56,520
تتا و کلمات نشان داده می شود بنابراین همانطور که می بینید
90
00:04:56,520 –> 00:04:59,580
این بردار خروجی خطوط است بنابراین من
91
00:04:59,580 –> 00:05:02,250
روی تک تک بردارهای خط تکرار می شود
92
00:05:02,250 –> 00:05:06,630
و چیزی که می دهد
93
00:05:06,630 –> 00:05:10,800
اولین عنصر این خط است که
94
00:05:10,800 –> 00:05:13,680
این دو مقدار
95
00:05:13,680 –> 00:05:16,080
را به شما می دهد.
96
00:05:16,080 –> 00:05:19,230
97
00:05:19,230 –> 00:05:23,460
من فقط از دو
98
00:05:23,460 –> 00:05:27,480
پارامتر در اینجا استفاده می کنم Rho کاما تتا بنابراین
99
00:05:27,480 –> 00:05:31,020
Rho فاصله از مختصات صفر
100
00:05:31,020 –> 00:05:34,020
کاما صفر است که گوشه سمت چپ بالای
101
00:05:34,020 –> 00:05:37,250
تصویر است و تتا
102
00:05:37,250 –> 00:05:42,030
زاویه چرخش خط بر حسب رادیان است بنابراین همه این
103
00:05:42,030 –> 00:05:44,730
Rho و t تا من
104
00:05:44,730 –> 00:05:47,100
در آخرین ویدیو برای شما توضیح دادم و دیدیم که چگونه
105
00:05:47,100 –> 00:05:50,730
میتوانیم این مقادیر Rho و تتا را
106
00:05:50,730 –> 00:05:55,110
در نیم فاصله نشان دهیم، بنابراین اول از همه کاری که
107
00:05:55,110 –> 00:05:57,510
میخواهیم انجام دهیم این است که وقتی
108
00:05:57,510 –> 00:06:00,530
مقدار Rho و تتا را بدست آوریم، میرویم.
109
00:06:00,530 –> 00:06:04,230
فقط مقدار تتا COS و
110
00:06:04,230 –> 00:06:07,110
مقدار تتا سینوسی را بدست آورید زیرا ما می خواهیم
111
00:06:07,110 –> 00:06:10,770
این مختصات قطبی را به
112
00:06:10,770 –> 00:06:14,160
مختصات دکارتی معمولی برای
113
00:06:14,160 –> 00:06:17,220
روش خط تبدیل کنیم زیرا این روش خط همانطور
114
00:06:17,220 –> 00:06:20,760
که می توانید تصور کنید این مختصات را
115
00:06:20,760 –> 00:06:22,740
درست می گیرد که مختصات دکار