پیشگفتار
سپاس پروردگاری که به ما توفیق و استعداد نوشتن آموخت تا بتوانیم این کتاب را در راستای گسترش علم و دانش به رشته تحریر درآوریم. در این کتاب سعی شده است مفاهیم علم پردازش تصویر به صورت گام به گام در دوازده فصل و به صورت اصولی و کاربردی توضیح داده شود. تمام مثالها و کدهایی کتاب در زبان پایتون و با استفاده از کتابخانههای مطرح، پیادهسازی و در کتاب آورده شدهاند. در فصل اول کتاب، مقدمهای در مورد پردازش تصویر و کاربردهای آن بیان شده است و سپس در فصلهای دوم و سوم دستورات پرکاربرد پایتون در پردازش تصویر به صورت خلاصه توضیح داده شده است تا علاقهمندان به علم پردازش تصویر بتوانند بهصورت خودآموز و به راحتی از این کتاب استفاده نمایند. ازاینرو مخاطبانی که به زبان پایتون تسلط دارند میتوانند فصلهای دوم و سوم را بهطور اجمالی مطالعه کنند . در فصل چهارم مدلهای رنگی مهم بیان و مؤلفههای آنها توضیح داده شدهاند. فصلهای پنج تا ده از فصلهای اصلی و مهم کتاب است. در این فصلها، سعی شده مفاهیم و مطالب پردازش تصویر هم بهصورت تئوری و هم بهصورت عملی و کدنویسی بیان شوند تا باعث افزیش یادگیری و درک بیشتر مخاطب شود. از آنجا که در بعضی از کدهای نوشتهشده کتاب از توابع آماده پایتون استفاده شده، توابع مهم و پرکاربرد پایتون در فصل یازده بهصورت مختصر بیان شده و از هر کدام یک مثال کدنویسی آورده شده است. در فصل آخر کتاب نیز نحوۀ نصب کتابخانهها و محیطهای برنامهنویسی مورد نیاز، بهصورت مرحله به مرحله و با شکل توضیح داده شده است تا مخاطبان مشکلی در نصب این برنامهها و کتابخانهها نداشته باشند.
تمام تلاش ما برای تألیف این کتاب جهت جلب رضایت شما و گسترش علوم جدید بوده است و بسیار خرسند خواهیم شد که هرگونه پیشنهاد و انتقاد خود را در راستای بهبود کتاب از طریق رایانامههای زیر با ما در میان بگذارید.
sardarimohsen@gmail.com
دکتر محسن سرداری زارچی
بهار ۱۴۰۱
فهرست مطالب
فصل 1
مقدمهای بر پردازش تصویر 1
1.1 مقدمه 2
2.1 کاربردهای پردازش تصاویر دیجیتال و بینایی کامپیوتر 2
فصل 2
محاسبات ریاضی در پایتون 11
2.1 مقدمه 12
2.2 متغیرها 12
2.3 شناسایی کلمات کلیدی 17
2.4 انواع عملگرها 18
2.5 لیستها 21
2.6 تاپل 23
2.7 دیکشنری 25
2.8 ایجاد دنباله منظم و متوالی عناصر 27
2.9 ایجاد ماتریس با استفاده از توابع 28
2.10 ماتریس تصادفی 30
2.11 کتابخانه Numpy 31
2.12 عملیات بر روی آرایهها و لیستها 32
فصل 3
دستورات شرطی و حلقهها 35
3.1 مقدمه 36
3.2 دستورات شرطی 36
3.3 دستورات مربوط به حلقه 39
فصل 4
فضاهای رنگی 43
4.1 مقدمه 44
4.2 مدلهای رنگی پرکاربرد 47
4.3 تبدیل فضاهای رنگی 51
فصل 5
تصاویر دیجیتال در پایتون 53
5.1 مقدمه 54
5.2 مروری بر سیستم مختصات 56
5.3 خواندن تصویر 56
4.5 نمایش تصویر 58
5.5 ذخیره تصویر 60
5.6 دسترسی به پیکسلها و دستکاری آنها 60
5.7 رسم اشکال 62
فصل 6
مفاهیم و تکنیکهای پایه در پردازش تصویر 73
6.1 مقدمه 74
6.2 تبدیلات تصویر 74
6.3 عملیات حسابی بر روی تصویر 82
6.4 عملیات بیتی بر روی تصاویر 84
6.5 ماسک 89
6.6 تجزیه و ادغام کانالها 91
6.7 کار با ویدئو 94
فصل 7
نمودار و هیستوگرام تصویر در پایتون 99
7.1 مقدمه 100
7.2 انواع نمودارها 100
7.3 طراحی نمودارها 105
7.4 ترسیم نمودار چندخطی 106
7.5 افزودن علائم و نشانهها 106
7.6 subplot 108
7.7 هیستوگرام 110
فصل 8
آستانهگذاری 117
8.1 مقدمه 118
8.2 آستانهگذاری ساده 118
8.3 آستانهگذاری تطبیقی 126
فصل 9
اعمال نویز و فیلتر روی تصاویر دیجیتال 131
9.1 مقدمه 132
9.2 همسایگی پیکسلها 132
9.3 نویز 133
9.4 حذف نویز به روش میانگینگیری 137
9.5 فیلترگذاری 145
9.6 فیلترهای لبه یاب 157
فصل 10
عملگرهای مورفولوژی 167
10.1 مقدمه 168
10.2 سازه 168
10.3 عملگرهای مورفولوژی 171
فصل 11
توابع پایتون 187
11.1 مقدمه 188
11.2 توابع ریاضی 188
11.3 توابع مثلثاتی 192
11.4 تابع max
11.5 تابع min 193
11.6 تابع mean 194
11.7 تابع bin 194
11.8 تابع chr 194 194
11.9 تابع enumerate 195
11.10 تابع len 195
11.11 تابع reversed 195
11.12 تابع type 196
11.13 تابع zip 196
فصل 12
نصب پکیجهای موردنیاز 199
12.1 پایتون و پکیجهای موردنیاز 200
12.2 نصب پکیج Numpy 205
12.3 نصب پکیج matplotlib 205
12.4 نصب OpenCV 207
12.5 معرفی Jupyter 211
12.6 معرفی Google Colab 215