Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/372763982

‫ آﻣﻮزش ﻋﻤﻠﯽ ﭘﺎﯾﺘﻮن و اوﭘﻦ ﺳﯽ وی‬Practical Python and OpenCV

Book · July 2023

CITATIONS READ
0 1

2 authors:

Saba Naseri Akbar Amir Baghi Rahin

11 PUBLICATIONS 1 CITATION
Islamic Azad University, Sardroud Branch
40 PUBLICATIONS 76 CITATIONS
SEE PROFILE
SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Circuit design with CNTFET and FinFET transistors View project

All content following this page was uploaded by Amir Baghi Rahin on 30 July 2023.

The user has requested enhancement of the downloaded file.


‫آﻣﻮزش ﻋﻤﻠﯽ‬
‫ﭘﺎﯾﺘﻮن‬
‫و‬
‫‪OpenCV‬‬

‫ﺗﺮﺟﻤﻪ‪:‬‬
‫ﻣﻬﻨﺪس ﺻﺒﺎ ﻧﺎﺻﺮي اﮐﺒﺮ‬
‫ﻣﻬﻨﺪس اﻣﯿﺮ ﺑﺎﻏﯽ رﻫﯿﻦ‬

‫اﻧﺘﺸﺎرات اﻃﻬﺮان‬
‫‪WWW.BitaProject.com‬‬

‫ﺷﺎﺑﮏ‪978-622-7800-33-3 :‬‬

‫‪ :‬آﻣﻮزش ﻋﻤﻠﯽ ﭘﺎﯾﺘﻮن و‪OpenCV‬‬ ‫ﻧﺎم ﮐﺘﺎب‬


‫‪ :‬ﻣﻬﻨﺪس ﺻﺒﺎ ﻧﺎﺻﺮي اﮐﺒﺮ‪ -‬ﻣﻬﻨﺪس اﻣﯿﺮ ﺑﺎﻏﯽ رﻫﯿﻦ‬ ‫ﻣﺘﺮﺟﻤﯿﻦ‬
‫‪ :‬اﻧﺘﺸﺎرات اﻃﻬﺮان‬ ‫ﻧﺎﺷﺮ‬
‫‪ :‬اول‪-‬ﺗﺎﺑﺴﺘﺎن ‪1402‬‬ ‫ﻧﻮﺑﺖ ﭼﺎپ‬
‫ﺗﻌﺪاد ﺻﻔﺤﻪ و ﻗﻄﻊ ‪ 136 :‬ﺻﻔﺤﻪ‪ -‬وزﯾﺮي‬
‫‪ 500 :‬ﻧﺴﺨﻪ‬ ‫ﺗﯿﺮاژ‬
‫‪ :‬ﻣﺆﺳﺴﻪ اﻃﻬﺮان‬ ‫ﺣﺮوفﭼﯿﻨﯽ‬
‫‪ :‬ﭼﺎردﯾﺰ‬ ‫ﻟﯿﺘﻮﮔﺮاﻓﯽ‬
‫ﭼﺎپ و ﺻﺤﺎﻓﯽ ‪ :‬ﻟﮏﻟﺮي‬
‫‪ :‬ﻣﻬﻨﺪس اﻣﯿﺮ ﺑﺎﻏﯽ رﻫﯿﻦ‬ ‫ﻃﺮاح ﺟﻠﺪ‬
‫‪ 150000 :‬ﺗﻮﻣﺎن‬ ‫ﻗﯿﻤﺖ‬
‫ﮐﻠﯿﻪ ﻣﺴﺌﻮﻟﯿﺖ ﻣﻄﺎﻟﺐ ﺑﻪ ﻋﻬﺪه ﻣﺆﻟﻒ ﺑﻮده و ﺣﻖ ﭼﺎپ و ﻧﺸﺮ ﺑﺮاي ﻣﺘﺮﺟﻤﯿﻦ ﻣﺤﻔﻮظ اﺳﺖ‪ .‬ﻫﺮﮔﻮﻧﻪ ﮐﭙﯽﺑﺮداري ﭘﯿﮕﺮد ﻗﺎﻧﻮﻧﯽ‬
‫دارد‪.‬‬

‫ﻣﺮاﮐﺰ ﭘﺨﺶ‪ :‬اﻧﺘﺸﺎرات آﺷﯿﻨﺎ‪ -‬اﻧﺘﺸﺎرات اﻃﻬﺮان‪ -‬ﻓﺮوﺷﮕﺎه اﯾﻨﺘﺮﻧﺘﯽ ﺑﯿﺘﺎ ﭘﺮوژه‬
‫ﺗﺒﺮﯾﺰ‪ -‬ﺧﯿﺎﺑﺎن اﻣﺎم‪ -‬ﺑﺎزار ﺑﺰرگ ﺗﺮﺑﯿﺖ‪ -‬ﻃﺒﻘﻪ ﭘﺎﯾﯿﻦ‪ -‬ﭘﻼك ‪ 7‬ﺗﻠﻔﻦ‪35536196 -35538603 :‬‬
‫ﻓﺮوﺷﮕﺎه اﯾﻨﺘﺮﻧﺘﯽ ﺑﯿﺘﺎ ﭘﺮوژه ‪www.bitaproject.com‬‬
‫‪WWW.BitaProject.com‬‬
‫ﺳﺨﻦ ﻧﺎﺷﺮ‬

‫ﺑﻨﺎم ﯾﺰدان ﭘﺎك ﮐﻪ ﺗﻔﮑﺮ را در ﺟﻬﺖ ﮐﺴﺐ داﻧﺶ و ﻣﻌﺮﻓﺖ ﺑﻪ ﺑﺸﺮ ارزاﻧﯽ ﺳﺎﺧﺖ‪ .‬ﺑﺴﯿﺎر‬
‫ﺧﻮﺷﺤﺎﻟﯿﻢ ﮐﻪ ﺑﺎر دﯾﮕﺮ اﯾﺰد ﯾﮑﺘﺎ ﺗﻮﻓﯿﻖ داد ﺗﺎ ﺑﺎ اراﺋﻪ ﻣﺠﻤﻮﻋﻪاي دﯾﮕﺮ در ﺧﺪﻣﺖ داﻧﺶ‬
‫ﭘﮋوﻫﺎن ﮔﺮاﻣﯽ ﺑﺎﺷﯿﻢ‪.‬‬

‫در ﮐﺘﺎب ﺣﺎﺿﺮ ﺑﺎ ﻋﻨﻮان »آﻣﻮزش ﻋﻤﻠﯽ ﭘﺎﯾﺘﻮن و ‪ «OpenCV‬در ‪ 11‬ﻓﺼﻞ و ﺑﺎ‬
‫ﭘﺮوژه ﻫﺎي ﮐﺎرﺑﺮدي ﺳﻌﯽ ﺷﺪه ﺗﺎ ﻣﻔﺎﻫﯿﻢ ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴﯽ ﭘﺎﯾﺘﻮن و ‪ OpenCV‬ﺑﺼﻮرت‬
‫ﮐﺎرﺑﺮدي و ﻋﻤﻠﯽ ﺗﺸﺮﯾﺢ ﺷﻮد‪ .‬ﺑﺪون داﺷﺘﻦ داﻧﺸﯽ از ﭘﯿﭽﯿﺪﮔﯽﻫﺎ و ﺟﺰﺋﯿﺎت رﯾﺎﺿﯿﺎﺗﯽ‬
‫ﻣﺮﺑﻮط ﺑﻪ دورهﻫﺎي ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ و ﭘﺮدازش ﺗﺼﻮﯾﺮ در ﺳﻄﺢ داﻧﺸﮕﺎه ﺧﻮاﻫﯿﺪ ﺗﻮاﻧﺴﺖ‬
‫ﺑﻪ ﮐﻤﮏ اﯾﻦ ﮐﺘﺎب ﺑﻪراﺣﺘﯽ ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ و ﭘﺮدازش ﺗﺼﻮﯾﺮ را ﺑﯿﺎﻣﻮزﯾﺪ‪.‬‬
‫در اﯾﻨﺠﺎ از ﺗﻤﺎم ﮐﺴﺎﻧﯽ ﮐﻪ ﻣﺎ را در ﺗﻬﯿﻪ اﯾﻦ ﻣﺠﻤﻮﻋﻪ ﯾﺎري ﻧﻤﻮدهاﻧﺪ ﻋﻠﯽاﻟﺨﺼﻮص‬
‫آﻗﺎي ﻣﻬﻨﺪس اﻣﯿﺮ ﺑﺎﻏﯽ رﻫﯿﻦ و ﺳﺮﮐﺎر ﺧﺎﻧﻢ ﻣﻬﻨﺪس ﺻﺒﺎ ﻧﺎﺻﺮي اﮐﺒﺮ ﮐﻪ زﺣﻤﺖ ﺗﺮﺟﻤﻪ‬
‫ﮐﺘﺎب‪ ،‬و آﻗﺎي ﻣﻬﻨﺪس اﻣﯿﺮ ﺑﺎﻏﯽ رﻫﯿﻦ ﮐﻪ ﻃﺮاﺣﯽ ﺟﻠﺪ را ﺑﺮ ﻋﻬﺪه داﺷﺘﻪاﻧﺪ و ﻫﻤﭽﻨﯿﻦ‬
‫آﻗﺎي ﻣﻬﻨﺪس اﻓﺸﯿﻦ ﻣﯿﺮاب ﮐﻪ ﻧﻈﺎرت ﻓﻨﯽ ﮐﺘﺎب را ﺑﻪ ﻋﻬﺪه داﺷﺘﻪاﻧﺪ ﺻﻤﯿﻤﺎﻧﻪ ﺗﺸﮑﺮ و‬
‫ﻗﺪرداﻧﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬
‫در ﺧﺎﺗﻤﻪ ﺑﻪ اﺳﺘﺤﻀﺎر ﮐﻠﯿﻪ اﺳﺎﺗﯿﺪ ﻣﺤﺘﺮم و داﻧﺸﺠﻮﯾﺎن ﻋﺰﯾﺰ ﻣﯽرﺳﺎﻧﺪ ﮐﻪ اﯾﻦ ﻣﻮﺳﺴﻪ ﺑﺎ‬
‫ﻫﺪف ﻧﺸﺮ و ﺗﻮﺳﻌﻪ ﮐﺘﺐ ﻓﻨﯽ‪ ،‬ﻣﻬﻨﺪﺳﯽ و ﻋﻠﻮم ﭘﺎﯾﻪ از ﮐﻠﯿﻪ ﻋﺰﯾﺰان و ﺻﺎﺣﺐﻧﻈﺮان ﻣﺤﺘﺮم‬
‫دﻋﻮت ﺑﻪ ﻫﻤﮑﺎري ﻣﯽﻧﻤﺎﯾﺪ‪ .‬ﻟﺬا از ﮐﻠﯿﻪ ﻋﺰﯾﺰاﻧﯽ ﮐﻪ ﻋﻼﻗﻪﻣﻨﺪ ﺑﻪ ﻫﻤﮑﺎري در زﻣﯿﻨﻪﻫﺎي‬
‫ﯾﺎدﺷﺪه ﻫﺴﺘﻨﺪ درﺧﻮاﺳﺖ ﻣﯽﺷﻮد ﮐﻪ ﺑﺎ اﯾﻦ اﻧﺘﺸﺎرات ﻣﮑﺎﺗﺒﻪ ﻧﻤﺎﯾﻨﺪ‪ .‬اﻣﯿﺪ اﺳﺖ ﺑﺎ ﻫﻤﮑﺎري‬
‫و ﻫﻤﻔﮑﺮي ﺻﺎﺣﺐﻧﻈﺮان ﻣﺤﺘﺮم ﺑﺘﻮاﻧﯿﻢ در ﺷﮑﻮﻓﺎﯾﯽ اﺳﺘﻌﺪادﻫﺎي اﯾﺮان ﻋﺰﯾﺰﻣﺎن ﮔﺎﻣﯽ‬
‫ﻫﺮﭼﻨﺪ ﮐﻮﺗﺎه ﺑﺮدارﯾﻢ‪.‬‬

‫‪www.ashina.fannazar.com‬‬

‫‪Email: atharanpub@gmail.com‬‬
‫‪WWW.BitaProject.com‬‬
‫ب■‬

‫ﺗﻘﺪﯾﻢ ﺑﻪ‬

‫دو وﺟﻮد ﻧﺎزﻧﯿﻦ‬

‫»ﻧﯿﮑﯽ« و »اﻣﯿﺮرﺿﺎ«‬

‫ﮐﻪ وارﺛﺎن ﻋﺸﻖ ﺧﻮاﻫﻨﺪ ﺑﻮد و ﺗﻤﺎم ﺑﯽﺧﻮاﺑﯽﻫﺎ و ﺗﻼﺷﻬﺎي ﺷﺒﺎﻧﻪروزيﻣﺎن‬

‫ﻓﻘﻂ و ﻓﻘﻂ ﺑﺮاي ﺳﻌﺎدت آﻧﻬﺎ ﺑﻮده اﺳﺖ‪.‬‬

‫ﺑﻪ اﻣﯿﺪ ﻓﺮداﯾﯽ روﺷﻦ ﺑﺮاي اﯾﻦ دو ﻏﻨﭽﻪ ﺗﺎزه ﺷﮑﻔﺘﻪ‪...‬‬


‫‪WWW.BitaProject.com‬‬
‫■ج‬

‫ﭘﯿﺸﮕﻔﺘﺎر ﻣﺆﻟﻒ‬

‫وﻗﺘﯽ ﺑﺮاي اوﻟﯿﻦ ﺑﺎر ﺗﺼﻤﯿﻢ ﮔﺮﻓﺘﻢ اﯾﻦ ﮐﺘﺎب را ﺑﻨﻮﯾﺴﻢ‪ ،‬ﻣﯽﺧﻮاﺳﺘﻢ ﺗﺎ ﺣﺪ اﻣﮑﺎن‬
‫ﮐﺎرﺑﺮدي ﺑﺎﺷﺪ‪ .‬ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر ﺑﻪ دﻧﺒﺎل ﺗﻌﺪاد ﻧﻤﻮﻧﻪﻫﺎي ﺑﺼﺮي زﯾﺎد ﺑﻪ ﻫﻤﺮاه ﺗﻌﺪاد‬
‫زﯾﺎدي ﮐﺪ ﺑﻮدم‪ .‬ﺑﻪ دﻧﺒﺎل ﻣﻄﺎﻟﺒﯽ ﺑﻮدم ﮐﻪ ﺑﺪون داﺷﺘﻦ داﻧﺸﯽ از ﭘﯿﭽﯿﺪﮔﯽﻫﺎ و ﺟﺰﺋﯿﺎت‬
‫رﯾﺎﺿﯿﺎﺗﯽ ﻣﺮﺑﻮط ﺑﻪ دورهﻫﺎي ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ و ﭘﺮدازش ﺗﺼﻮﯾﺮ در ﺳﻄﺢ داﻧﺸﮕﺎه ﺑﺘﻮاﻧﯿﺪ‬
‫ﺑﻪراﺣﺘﯽ آﻧﻬﺎ را ﺑﯿﺎﻣﻮزﯾﺪ‪.‬‬
‫از ﺗﻤﺎم ﺳﺎلﻫﺎﯾﯽ ﮐﻪ در ﮐﻼس ﮔﺬراﻧﺪم‪ ،‬ﺑﻪ اﯾﻦ ﻧﺘﯿﺠﻪ رﺳﯿﺪهام ﮐﻪ ﺑﻬﺘﺮﯾﻦ روﺷﯽ ﮐﻪ‬
‫ﺗﻮﺳﻂ آن ﻣﻄﺎﻟﺐ زﯾﺎدي ﯾﺎد ﮔﺮﻓﺘﻢ‪ ،‬ﺑﺎز ﮐﺮدن ﯾﮏ وﯾﺮاﯾﺸﮕﺮ و ﻧﻮﺷﺘﻦ ﮐﺪ در آن ﺑﻮد‪.‬‬
‫ﻣﻄﻤﺌﻨ ًﺎ‪ ،‬ﺗﺌﻮري و ﻣﺜﺎلﻫﺎي ﻣﻮﺟﻮد در ﮐﺘﺎبﻫﺎي درﺳﯽ ﻣﻦ ﺗﻨﻬﺎ ﯾﮏ ﻧﻘﻄﻪ ﺷﺮوع ﻣﺤﺴﻮب‬
‫ﻣﯽﺷﺪﻧﺪ‪ .‬اﻣﺎ ﻣﻦ ﻫﺮﮔﺰ ﭼﯿﺰي را »ﯾﺎد ﻧﮕﺮﻓﺘﻪام« ﻣﮕﺮ اﯾﻨﮑﻪ ﺧﻮدم آن را اﻧﺠﺎم داده ﺑﺎﺷﻢ‪.‬‬
‫ﻣﻦ ﺑﺴﯿﺎر اﻫﻞ ﻋﻤﻞ ﻫﺴﺘﻢ؛ و اﯾﻦ دﻗﯿﻘ ًﺎ ﻫﻤﺎن ﭼﯿﺰي اﺳﺖ ﮐﻪ از اﯾﻦ ﮐﺘﺎب اﻧﺘﻈﺎر دارم‪.‬‬
‫ﮐﺘﺎﺑﯽ ﺑﺴﯿﺎر ﻋﻤﻠﯽ‪ ،‬ﺑﺎ ﺗﻤﺎم ﮐﺪﻫﺎﯾﯽ ﮐﻪ ﺑﻪراﺣﺘﯽ ﻗﺎﺑﻞﺗﻐﯿﯿﺮ ﻫﺴﺘﻨﺪ و ﺑﻪﺧﻮﺑﯽ ﻣﺴﺘﻨﺪﺳﺎزي‬
‫ﺷﺪهاﻧﺪ ﺗﺎ ﺑﺘﻮاﻧﯿﺪ ﺑﻪﺗﻨﻬﺎﯾﯽ ﺑﺎ آن ﺑﺎزي ﮐﻨﯿﺪ‪ .‬ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ ﻣﻦ ﻓﻬﺮﺳﺖ ﮐﺎﻣﻞ ﮐﺪ ﻣﻨﺒﻊ و‬
‫ﺗﺼﺎوﯾﺮ اﺳﺘﻔﺎدهﺷﺪه در اﯾﻦ ﮐﺘﺎب را در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار ﻣﯽدﻫﻢ‪.‬‬
‫ﻣﻬﻢﺗﺮ از آن‪ ،‬ﻣﯽﺧﻮاﺳﺘﻢ اﯾﻦ ﮐﺘﺎب ﺑﺮاي ﻃﯿﻒ وﺳﯿﻌﯽ از ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﺎن ﻗﺎﺑﻞدرك‬
‫ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﯾﺎد دارم زﻣﺎﻧﯽ ﮐﻪ ﺑﺮاي اوﻟﯿﻦ ﺑﺎر ﺷﺮوع ﺑﻪ ﯾﺎدﮔﯿﺮي ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ ﮐﺮدم – اﯾﻦ‬
‫ﮐﺎر ﯾﮏ ﮐﺎر دﻟﻬﺮهآور ﺑﻮد؛ اﻣﺎ ﺧﯿﻠﯽ ﭼﯿﺰﻫﺎ ﯾﺎد ﮔﺮﻓﺘﻢ؛ و ﺑﻪ ﻣﻦ ﺧﯿﻠﯽ ﺧﻮش ﮔﺬﺷﺖ‪.‬‬
‫اﻣﯿﺪوارم اﯾﻦ ﮐﺘﺎب ﺑﻪ ﺷﻤﺎ در ﺳﻔﺮ ﺑﻪ ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ ﮐﻤﮏ ﮐﻨﺪ‪ .‬از ﻧﻮﺷﺘﻦ آن ﻟﺬت‬
‫ﺑﺮدم‪ .‬اﮔﺮ ﺳﺆال‪ ،‬ﭘﯿﺸﻨﻬﺎد ﯾﺎ ﻧﻈﺮي دارﯾﺪ‪ ،‬ﯾﺎ اﮔﺮ ﻣﯽﺧﻮاﻫﯿﺪ ﯾﮏ ﺳﻼم ﺳﺎده ﮐﻨﯿﺪ‪ ،‬ﺑﻪ آدرس‬
‫‪ adrian@pyimagesearch.com‬ﺑﻪ ﻣﻦ اﯾﻤﯿﻞ ﺑﺰﻧﯿﺪ‪ ،‬ﯾﺎ ﻣﯽﺗﻮاﻧﯿﺪ از وبﺳﺎﯾﺖ ﻣﻦ در‬
‫‪ www.PyImageSearch.com‬دﯾﺪن ﮐﺮده و در آﻧﺠﺎ ﻧﻈﺮ ﺧﻮد را ﺛﺒﺖ ﮐﻨﯿﺪ‪ .‬ﻣﺸﺘﺎﻗﺎﻧﻪ ﻣﻨﺘﻈﺮ‬
‫درﯾﺎﻓﺖ ﻧﻈﺮات ﺷﻤﺎ ﻫﺴﺘﻢ!‬
‫آدرﯾﺎن روزﺑﺮوك‬
‫‪WWW.BitaProject.com‬‬
‫د■‬

‫ﭘﯿﺸﮕﻔﺘﺎر ﻣﺘﺮﺟﻤﯿﻦ‬

‫اﯾﻦ ﮐﺘﺎب ﺑﺎ ﺑﯿﺶ از ﭼﻨﺪﯾﻦ ﭘﺮوژه ﮐﺎرﺑﺮدي در ‪ 11‬ﻓﺼﻞ ﺗﺮﺟﻤﻪ ﺷﺪه و ﺧﻼﺻﻪ اﯾﻦ‬
‫ﻓﺼﻞﻫﺎ ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :1‬در اﯾﻦ ﻓﺼﻞ آﺷﻨﺎﯾﯽ ﮐﻠﯽ ﺑﺎ ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ و ﮐﺎرﺑﺮدﻫﺎي ﻣﺨﺘﻠﻒ آن‬
‫ﺧﻮاﻫﯿﻢ داﺷﺖ‪.‬‬
‫‪ ‬ﻓ ﺼﻞ ‪ :2‬در اﯾﻦ ﻓﺼﻞ ﺑﻪ ﻣﻌﺮﻓﯽ ﭘﺎﯾﺘﻮن ﭘﺮداﺧﺘﻪ و ﺑﺴﺘﻪﻫﺎي ﻣﻮردﻧﯿﺎز ﺑﺮاي ﮐﺎر‬
‫ﺑﺎ ‪ OpenCV‬را در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار ﻣﯽدﻫﯿﻢ‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :3‬در اﯾﻦ ﻓﺼﻞ درﺑﺎره ﺑﺎرﮔﺬاري‪ ،‬ﻧﻤﺎﯾﺶ و ذﺧﯿﺮهﺳﺎزي ﺗﺼﺎوﯾﺮ اﻃﻼﻋﺎﺗﯽ‬
‫ﺑﻪ ﺧﻮاﻧﻨﺪﮔﺎن ﻣﺤﺘﺮم داده ﻣﯽﺷﻮد‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :4‬در اﯾﻦ ﻓﺼﻞ‪ ،‬اﺻﻮل اوﻟﯿﻪ ﺗﺼﻮﯾﺮ ﺗﺸﺮﯾﺢ ﺷﺪه و اﻃﻼﻋﺎﺗﯽ درﺑﺎره‬
‫ﭘﯿﮑﺴﻞﻫﺎ‪ ،‬ﺳﯿﺴﺘﻢ ﻣﺨﺘﺼﺎت و دﺳﺘﺮﺳﯽ ﭘﯿﮑﺴﻞﻫﺎ داده ﻣﯽﺷﻮد‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :5‬در اﯾﻦ ﻓﺼﻞ درﺑﺎره ﺗﺮﺳﯿﻢ ﺧﻂ‪ ،‬ﻣﺴﺘﻄﯿﻞ و داﯾﺮه ﻣﻄﺎﻟﺒﯽ را ﺧﻮاﻫﯿﺪ‬
‫آﻣﻮﺧﺖ‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :6‬در اﯾﻦ ﻓﺼﻞ ﻣﺒﺎﺣﺚ اﺻﻠﯽ ﭘﺮدازش ﺗﺼﻮﯾﺮ و ﺗﻐﯿﯿﺮات اﺳﺎﺳﯽ ﺗﺼﻮﯾﺮ‬
‫ﭘﻮﺷﺶ داده ﻣﯽﺷﻮد‪ .‬اﯾﻦ ﻣﻮارد ﺗﮑﻨﯿﮏﻫﺎي راﯾﺠﯽ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﺮاي ﺗﻐﯿﯿﺮ ﺗﺼﺎوﯾﺮ‬
‫از ﺟﻤﻠﻪ اﻧﺘﻘﺎل‪ ،‬دوران‪ ،‬ﺗﻐﯿﯿﺮ اﻧﺪازه‪ ،‬اﻧﻌﮑﺎس و ﺑﺮش اﺳﺘﻔﺎده ﻣﯽﺷﻮﻧﺪ‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :7‬در اﯾﻦ ﻓﺼﻞ ﺑﺎ ﺑﺮرﺳﯽ ﺳﺎده ﻫﯿﺴﺘﻮﮔﺮام ﯾﮏ ﺗﺼﻮﯾﺮ‪ ،‬درك ﮐﻠﯽ در‬
‫ﻣﻮرد ﮐﻨﺘﺮاﺳﺖ‪ ،‬روﺷﻨﺎﯾﯽ و ﺗﻮزﯾﻊ ﻣﻘﺎدﯾﺮ ﭘﯿﮑﺴﻞﻫﺎ ﺑﻪ دﺳﺖ ﻣﯽآورﯾﺪ‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :8‬در اﯾﻦ ﻓﺼﻞ درﺑﺎره ﺷﻔﺎفﺳﺎزي و ﺗﺎرﺳﺎزي ﺗﺼﺎوﯾﺮ ﻣﻄﺎﻟﺒﯽ را ﺧﻮاﻫﯿﺪ‬
‫آﻣﻮﺧﺖ‪ .‬اﻧﻮاع روشﻫﺎ از ﻗﺒﯿﻞ ﻣﯿﺎﻧﮕﯿﻦﮔﯿﺮي‪ ،‬ﮔﺎوﺳﯽ‪ ،‬ﻣﯿﺎﻧﻪ و دو ﻃﺮﻓﻪ در اﯾﻦ‬
‫ﻓﺼﻞ ﺗﺸﺮﯾﺢ ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬‬
‫‪WWW.BitaProject.com‬‬
‫■ه‬

‫‪ ‬ﻓﺼﻞ ‪ :9‬در اﯾﻦ ﻓﺼﻞ ﺑﻪ آﺳﺘﺎﻧﻪﮔﺬاري ﭘﺮداﺧﺘﻪ ﻣﯽﺷﻮد و اﻧﻮاع روشﻫﺎي‬


‫آﺳﺘﺎﻧﻪﮔﺬاري از ﻗﺒﯿﻞ آﺳﺘﺎﻧﻪﮔﺬاري ﺳﺎده‪ ،‬ﺗﻄﺒﯿﻘﯽ‪ ،‬اوﺗﺴﻮ و رﯾﺪﻟﺮ‪-‬ﮐﺎﻟﻮارد ﺑﺎ ﻣﺜﺎل‬
‫ﺗﺸﺮﯾﺢ ﻣﯽﺷﻮﻧﺪ‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :10‬در اﯾﻦ ﻓﺼﻞ ﺑﻪ ﮔﺮادﯾﺎنﻫﺎ و ﺗﺸﺨﯿﺺ ﻟﺒﻪ ﭘﺮداﺧﺘﻪ ﻣﯽﺷﻮد‪ .‬ﺑﻪﻃﻮر‬
‫ﮐﻠﯽ‪ ،‬ﺗﺸﺨﯿﺺ ﻟﺒﻪ ﻣﺘﺸﮑﻞ از روشﻫﺎي رﯾﺎﺿﯽ ﺑﺮاي ﯾﺎﻓﺘﻦ ﻧﻘﺎﻃﯽ در ﺗﺼﻮﯾﺮ‬
‫اﺳﺖ ﮐﻪ در آن ﺷﺪت روﺷﻨﺎﯾﯽ ﭘﯿﮑﺴﻞﻫﺎ ﺑﻪﻃﻮر ﻣﺸﺨﺺ ﺗﻐﯿﯿﺮ ﻣﯽﮐﻨﺪ‪ .‬در اﯾﻦ‬
‫ﻓﺼﻞ ﻧﺤﻮه ﺗﺸﺨﯿﺺ ﻟﺒﻪﻫﺎ در ﺗﺼﻮﯾﺮ ﺳﮑﻪﻫﺎ ﺑﻪﺻﻮرت ﻋﻤﻠﯽ ﺑﺮرﺳﯽ ﻣﯽﺷﻮد‪.‬‬
‫‪ ‬ﻓﺼﻞ ‪ :11‬در اﯾﻦ ﻓﺼﻞ ﺑﻪ ﺑﺮرﺳﯽ اﺻﻮل و ﻣﺒﺎﻧﯽ ﮐﺎﻧﺘﻮرﻫﺎ ﭘﺮداﺧﺘﻪ ﻣﯽﺷﻮد و از‬
‫ﻟﺒﻪﻫﺎ ﺑﺮاي ﯾﺎﻓﺘﻦ ﺳﮑﻪﻫﺎي واﻗﻌﯽ در ﺗﺼﻮﯾﺮ و ﺷﻤﺎرش آنﻫﺎ اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬

‫ﺑﻪ ﭼﻪ ﭼﯿﺰﻫﺎﯾﯽ اﺣﺘﯿﺎج دارﯾﺪ‬

‫ﺑﺮاي اﺳﺘﻔﺎده ﺑﻬﯿﻨﻪ از اﯾﻦ ﮐﺘﺎب‪ ،‬ﺑﺎﯾﺪ ﮐﻤﯽ ﺗﺠﺮﺑﻪ ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴﯽ داﺷﺘﻪ ﺑﺎﺷﯿﺪ‪ .‬ﺗﻤﺎﻣﯽ‬
‫ﻣﺜﺎلﻫﺎي اﯾﻦ ﮐﺘﺎب ﺑﻪ زﺑﺎن ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴﯽ ﭘﺎﯾﺘﻮن ﻧﻮﺷﺘﻪ ﺷﺪهاﻧﺪ‪ .‬آﺷﻨﺎﯾﯽ ﺑﺎ ﭘﺎﯾﺘﻮن ﯾﺎ ﺳﺎﯾﺮ‬
‫زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴﯽ ﭘﯿﺸﻨﻬﺎد ﻣﯽﺷﻮد‪ ،‬اﻣﺎ اﯾﻦ آﺷﻨﺎﯾﯽ اﻟﺰاﻣﯽ ﻧﯿﺴﺖ‪.‬‬
‫ﻫﻤﭽﻨﯿﻦ ﺑﺎﯾﺪ ﺑﺮﺧﯽ از ﻣﻔﺎﻫﯿﻢ رﯾﺎﺿﯽ ﭘﺎﯾﻪ را ﺑﺪاﻧﯿﺪ‪ .‬اﯾﻦ ﮐﺘﺎب ﺑﻪﺻﻮرت ﻋﻤﻠﯽ و‬
‫ﻣﺒﺘﻨﯽ ﺑﺮ ﻣﺜﺎل اﺳﺖ‪ :‬ﻣﺜﺎلﻫﺎي ﻓﺮاوان و ﮐﺪﻫﺎي ﻓﺮاوان‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ ﺣﺘﯽ اﮔﺮ ﻣﻬﺎرتﻫﺎي‬
‫رﯾﺎﺿﯽ ﺷﻤﺎ در ﺣﺪ ﻣﺒﺎﺣﺚ ﻣﻄﺮحﺷﺪه ﻧﯿﺴﺖ‪ ،‬ﻧﮕﺮان ﻧﺒﺎﺷﯿﺪ! ﻣﺜﺎلﻫﺎ ﺑﺴﯿﺎر دﻗﯿﻖ ﺑﻮده و‬
‫ﻣﺴﺘﻨﺪﺳﺎزي ﺷﺪهاﻧﺪ ﺗﺎ ﺑﻪ ﺷﻤﺎ در درك ﻣﻄﺎﻟﺐ ﮐﻤﮏ ﮐﻨﻨﺪ‪.‬‬
‫در اﯾﻦ ﻧﺴﺨﻪ از ﮐﺘﺎب‪ ،‬ﺗﻤﺎم ﻓﺼﻞﻫﺎ‪ ،‬ﻧﻤﻮﻧﻪ ﮐﺪﻫﺎ و ﻣﺠﻤﻮﻋﻪ دادهﻫﺎ ﺑﺮاي ﺳﺎزﮔﺎري‬
‫ﺑﺎ ‪ OpenCV 3.0‬ﺑﻪروزرﺳﺎﻧﯽ ﺷﺪهاﻧﺪ‪ .‬ﻋﻼوه ﺑﺮ اﯾﻦ‪ ،‬ﺗﻤﺎم ﻧﻤﻮﻧﻪ ﮐﺪﻫﺎ در ﻣﺤﯿﻂﻫﺎي‬
‫ﭘﺎﯾﺘﻮن ‪ 2,7‬و ﭘﺎﯾﺘﻮن ‪ +3‬اﺟﺮا ﻣﯽﺷﻮﻧﺪ!‬
‫‪WWW.BitaProject.com‬‬
‫و■‬

‫ﻗﺮاردادﻫﺎي اﺳﺘﻔﺎدهﺷﺪه در اﯾﻦ ﮐﺘﺎب‬

‫اﯾﻦ ﮐﺘﺎب ﺷﺎﻣﻞ ﮐﺪﻫﺎ و ﻋﺒﺎرات ﺑﺴﯿﺎري اﺳﺖ ﮐﻪ ﺑﻪ ﺷﻤﺎ در ﺳﻔﺮ ﺑﻪ ﯾﺎدﮔﯿﺮي ﺑﯿﻨﺎﯾﯽ‬
‫ﮐﺎﻣﭙﯿﻮﺗﺮ و ﭘﺮدازش ﺗﺼﻮﯾﺮ ﮐﻤﮏ ﻣﯽﮐﻨﺪ‪ .‬در زﯾﺮ ﻗﺮاردادﻫﺎي ﻧﮕﺎرﺷﯽ اﺳﺘﻔﺎدهﺷﺪه در اﯾﻦ‬
‫ﮐﺘﺎب ﻋﻨﻮان ﺷﺪه اﺳﺖ‪:‬‬
‫‪ -‬ﻓﻮﻧﺖ اﯾﺘﺎﻟﯿﮏ‬
‫ﻋﺒﺎرات ﮐﻠﯿﺪي و اﻃﻼﻋﺎت ﻣﻬﻤﯽ را ﻧﺸﺎن ﻣﯽدﻫﻨﺪ ﮐﻪ ﺑﺎﯾﺪ ﺑﻪ آﻧﻬﺎ ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ‪.‬‬
‫ﻫﻤﭽﻨﯿﻦ ﻣﻤﮑﻦ اﺳﺖ ﺑﻪ ﻣﻌﺎدﻻت ﯾﺎ ﻓﺮﻣﻮلﻫﺎي رﯾﺎﺿﯽ اﺷﺎره داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﻓﻮﻧﺖ ﺑﺮﺟﺴﺘﻪ‬ ‫‪-‬‬
‫اﻃﻼﻋﺎت ﻣﻬﻤﯽ ﮐﻪ ﺑﺎﯾﺪ ﺑﻪ آﻧﻬﺎ ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ‪.‬‬
‫ﻓﻮﻧﺖ ﺑﺎ ﻋﺮض ﺛﺎﺑﺖ‬ ‫‪-‬‬
‫ﺑﺮاي ﮐﺪﻫﺎي ﻣﻨﺒﻊ و ﻫﻤﭽﻨﯿﻦ ﭘﺎراﮔﺮافﻫﺎﯾﯽ ﮐﻪ ﺑﻪ ﮐﺪ ﻣﻨﺒﻊ اﺷﺎره ﻣﯽﮐﻨﻨﺪ‪ ،‬ﻣﺎﻧﻨﺪ ﻧﺎم‬
‫ﺗﺎﺑﻊ و ﻣﺘﺪ اﺳﺘﻔﺎده ﻣﯽﺷﻮد‪.‬‬

‫ﮐﺪﻫﺎي ﮐﺘﺎب‪ ،‬ﻧﺮماﻓﺰارﻫﺎي ﻣﺮﺑﻮﻃﻪ و ﭘﺸﺘﯿﺒﺎﻧﯽ‬

‫اﯾﻦ ﮐﺘﺎب ﻗﺮار اﺳﺖ ﺑﻪﻋﻨﻮان ﯾﮏ روﯾﮑﺮد ﻋﻤﻠﯽ ﺑﺮاي ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ و ﯾﺎدﮔﯿﺮي ﻣﺎﺷﯿﻦ‬
‫اﺳﺘﻔﺎده ﺷﻮد‪ .‬ﮐﺪﻫﺎي ﻣﻮﺟﻮد در اﯾﻦ ﮐﺘﺎب‪ ،‬ﻫﻤﺮاه ﺑﺎ ﮐﺪ ﻣﻨﺒﻊ ﺗﻮزﯾﻊﺷﺪه ﺑﺎ اﯾﻦ ﮐﺘﺎب‪،‬‬
‫ﺑﻪﺻﻮرت راﯾﮕﺎن در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ‪ .‬ﻣﯽﺗﻮاﻧﯿﺪ آنﻫﺎ را ﺗﻐﯿﯿﺮ دﻫﯿﺪ‪ ،‬ﺑﺮرﺳﯽ‬
‫ﮐﻨﯿﺪ و ﺑﺎ دﯾﮕﺮان ﺑﻪ اﺷﺘﺮاك ﺑﮕﺬارﯾﺪ‪.‬‬
‫ﺑﻪﻃﻮر ﮐﻠﯽ‪ ،‬اﮔﺮ از ﮐﺪ ﻣﻨﺒﻊ ﻣﻮﺟﻮد در اﯾﻦ ﮐﺘﺎب اﺳﺘﻔﺎده ﻣﯽﮐﻨﯿﺪ‪ ،‬ﻧﯿﺎزي ﺑﻪ ﺗﻤﺎس ﺑﺎ‬
‫ﻧﻮﯾﺴﻨﺪه اﺻﻠﯽ اﯾﻦ ﮐﺘﺎب ﺑﺮاي ﮐﺴﺐ اﺟﺎزه ﻧﺪارﯾﺪ‪ .‬ﻧﻮﺷﺘﻦ اﺳﮑﺮﯾﭙﺘﯽ ﮐﻪ ﺣﺎوي ﻗﻄﻌﻪ‬
‫ﮐﺪﻫﺎي اﯾﻦ ﮐﺘﺎب اﺳﺖ ﺑﻪ ﻫﯿﭻ ﻋﻨﻮان از ﻧﻈﺮ آﻗﺎي دﮐﺘﺮ آدرﯾﺎن روزﺑﺮوك ﻣﺸﮑﻠﯽ ﻧﺪارد‪.‬‬
‫ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬ﻓﺮوش ﯾﺎ ﺗﻮزﯾﻊ ﻗﻄﻌﻪ ﮐﺪﻫﺎي ﻣﻮﺟﻮد در اﯾﻦ ﮐﺘﺎب‪ ،‬ﭼﻪ ﺑﻪﻋﻨﻮان ﻣﺤﺼﻮل‬
‫اﻃﻼﻋﺎﺗﯽ و ﭼﻪ ﺑﻪﻋﻨﻮان ﻣﺴﺘﻨﺪﺳﺎزي ﻣﺤﺼﻮل‪ ،‬ﻧﯿﺎزﻣﻨﺪ ﮐﺴﺐ اﺟﺎزه از اﯾﺸﺎن اﺳﺖ‪ .‬اﮔﺮ‬
‫در ﻣﻮرد اﺳﺘﻔﺎده از ﻧﻤﻮﻧﻪ ﮐﺪﻫﺎي اﯾﻦ ﮐﺘﺎب ﺳﺆاﻟﯽ دارﯾﺪ‪ ،‬ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ آدرس اﯾﻤﯿﻞ‬
‫‪ adrian@pyimagesearch.com‬ﺑﺎ دﮐﺘﺮ آدرﯾﺎن روزﺑﺮوك ﺗﻤﺎس ﺑﮕﯿﺮﯾﺪ‪.‬‬
‫‪WWW.BitaProject.com‬‬
‫■ز‬

‫ﮐﺪﻫﺎي ﻣﺮﺑﻮط ﺑﻪ اﯾﻦ ﮐﺘﺎب‪ ،‬ﻣﻮارد ﺗﮑﻤﯿﻠﯽ )ﮐﺪﻫﺎي ﻧﻤﻮﻧﻪ‪ ،‬ﺗﻤﺮﯾﻦﻫﺎ و ﻏﯿﺮه( و‬
‫ﻫﻤﭽﻨﯿﻦ ﺗﻌﺪادي از ﻧﺮماﻓﺰارﻫﺎ و ﺑﺮﻧﺎﻣﻪﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺮاي اﺳﺘﻔﺎده ﺑﻬﯿﻨﻪ ﺷﻤﺎ در داﺧﻞ ﺳﺎﯾﺖ‬
‫ﺑﯿﺘﺎ ﭘﺮوژه )‪ (www.bitaproject.com‬ﻗﺮار داده ﺷﺪه اﺳﺖ‪ .‬ﻧﻈﺮات و ﭘﯿﺸﻨﻬﺎدﻫﺎي ﺧﻮد را‬
‫از ﻃﺮﯾﻖ راهﻫﺎي ارﺗﺒﺎﻃﯽ زﯾﺮ ﺑﺎ ﻣﺎ در ﻣﯿﺎن ﺑﮕﺬارﯾﺪ‪ .‬ﻫﺮﮔﻮﻧﻪ اﻧﺘﻘﺎد و ﭘﯿﺸﻨﻬﺎد از ﺳﻮي‬
‫ﺧﻮاﻧﻨﺪﮔﺎن ﻣﺤﺘﺮم ﻣﻐﺘﻨﻢ ﺷﻤﺮده ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺑﺮاي اﻃﻼﻋﺎت ﺑﯿﺸﺘﺮ درﺑﺎره ﮐﺘﺎبﻫﺎ‪ ،‬دورهﻫﺎ‪،‬‬
‫ﮐﻨﻔﺮاﻧﺲﻫﺎ و اﺧﺒﺎر ﻣﺎ‪ ،‬وبﺳﺎﯾﺖ ﻣﺎ را ﺑﻪ آدرس ﺑﯿﺘﺎ ﭘﺮوژه ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬‬
‫‪ ‬وبﺳﺎﯾﺖ‪ www.bitaproject.com :‬و ‪www.bitaproject.ir‬‬

‫‪ ‬آدرس اﯾﻤﯿﻞ‪info@bitaproject.com :‬‬

‫‪ ‬اﯾﻨﺴﺘﺎﮔﺮام‪@bitaproject :‬‬

‫‪ ‬ﮐﺎﻧﺎل ﺗﻠﮕﺮام‪@bitaproject :‬‬

‫‪ ‬ﺗﻮﯾﯿﺘﺮ‪@bitaproject :‬‬
WWW.BitaProject.com
‫ﻓﻬﺮﺳﺖ ﻣﻄﺎﻟﺐ‬

‫‪1‬‬ ‫ﻓﺼﻞ ‪ .1‬ﻣﻘﺪﻣﻪ‬

‫‪5‬‬ ‫ﻓﺼﻞ ‪ .2‬ﭘﺎﯾﺘﻮن و ﺑﺴﺘﻪﻫﺎي ﻣﻮردﻧﯿﺎز‬

‫‪ NumPY .1-2‬و ‪6 ........................................................................................ SciPY‬‬


‫‪ .1-1-2‬وﯾﻨﺪوز ‪6 ..............................................................................................‬‬
‫‪6 ................................................................................................ OSX .2-1-2‬‬
‫‪ .3-1-2‬ﻟﯿﻨﻮﮐﺲ ‪7 .............................................................................................‬‬
‫‪7 ..................................................................................................... matplotlib .2-2‬‬
‫‪ .1-2-2‬ﺗﻤﺎم ﭘﻠﺘﻔﺮمﻫﺎ ‪7 .....................................................................................‬‬
‫‪8 ........................................................................................................ OpenCV .3-2‬‬
‫‪ .1-3-2‬ﻟﯿﻨﻮﮐﺲ و ‪8 ............................................................................... OSX‬‬
‫‪ .2-3-2‬وﯾﻨﺪوز ‪9 ..............................................................................................‬‬
‫‪9 ........................................................................................................ Mahotas .4-2‬‬
‫‪ .1-4-2‬ﺗﻤﺎم ﭘﻠﺘﻔﺮمﻫﺎ ‪9 .....................................................................................‬‬
‫‪10 ...................................................................................... SCIKIT-LEARN .5-2‬‬
‫‪ .1-5-2‬ﺗﻤﺎم ﭘﻠﺘﻔﺮمﻫﺎ ‪10 ...................................................................................‬‬
‫‪10 ............................................................................................... scikit-image .6-2‬‬
‫‪ .7-2‬ﻓﺮآﯾﻨﺪ ﻧﺼﺐ را رد ﮐﻨﯿﺪ ‪11 ..................................................................................‬‬

‫‪13‬‬ ‫ﻓﺼﻞ ‪ .3‬ﺑﺎرﮔﺬاري‪ ،‬ﻧﻤﺎﯾﺶ و ذﺧﯿﺮه‬

‫‪17‬‬ ‫ﻓﺼﻞ ‪ .4‬اﺻﻮل اوﻟﯿﻪ ﺗﺼﻮﯾﺮ‬

‫‪ .1-4‬ﭘﯿﮑﺴﻞ ﭼﯿﺴﺖ؟ ‪17 .............................................................................................‬‬


‫‪ .2-4‬ﻧﻤﺎي ﮐﻠﯽ ﺳﯿﺴﺘﻢ ﻣﺨﺘﺼﺎت ‪19 ...........................................................................‬‬
‫‪ .3-4‬دﺳﺘﺮﺳﯽ و دﺳﺖﮐﺎري ﭘﯿﮑﺴﻞﻫﺎ ‪20 ....................................................................‬‬
‫‪25‬‬ ‫ﻓﺼﻞ ‪ .5‬ﺗﺮﺳﯿﻢ ﮐﺮدن‬

‫‪ .1-5‬ﺧﻂ و ﻣﺴﺘﻄﯿﻞ ‪25 ...............................................................................................‬‬


‫‪ .2-5‬داﯾﺮه ‪29 ...............................................................................................................‬‬

‫‪33‬‬ ‫ﻓﺼﻞ ‪ .6‬ﭘﺮدازش ﺗﺼﻮﯾﺮ‬

‫‪ .1-6‬ﺗﻐﯿﯿﺮ ﺷﮑﻞ ﺗﺼﻮﯾﺮ ‪33 ..........................................................................................‬‬


‫‪ .1-1-6‬اﻧﺘﻘﺎل ‪33 ...............................................................................................‬‬
‫‪ .2-1-6‬دوران ‪37 ..............................................................................................‬‬
‫‪ .3-1-6‬ﺗﻐﯿﯿﺮ اﻧﺪازه ‪41 ......................................................................................‬‬
‫‪ .4-1-6‬اﻧﻌﮑﺎس ‪46 ...........................................................................................‬‬
‫‪ .5-1-6‬ﺑﺮش‪48 ................................................................................................‬‬
‫‪ .2-6‬ﺗﻐﯿﯿﺮات ﻋﺪدي روي ﺗﺼﻮﯾﺮ ‪50 ...........................................................................‬‬
‫‪ .3-6‬ﻋﻤﻠﯿﺎت ﺑﯿﺘﯽ ‪55 ...................................................................................................‬‬
‫‪ .4-6‬ﻣﺎﺳﮏﮔﺬاري ‪58 ..................................................................................................‬‬
‫‪ .5-6‬ﺟﺪاﺳﺎزي و ادﻏﺎم ﮐﺎﻧﺎلﻫﺎ ‪63 ..............................................................................‬‬
‫‪ .6-6‬ﻓﻀﺎﻫﺎي رﻧﮕﯽ ‪66 ................................................................................................‬‬

‫‪69‬‬ ‫ﻓﺼﻞ ‪ .7‬ﻫﯿﺴﺘﻮﮔﺮام‬

‫‪ .1-7‬اﺳﺘﻔﺎده از ‪ OpenCV‬ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻫﯿﺴﺘﻮﮔﺮام ‪69 ..............................................‬‬


‫‪ .2-7‬ﻫﯿﺴﺘﻮﮔﺮام در ﻣﻘﯿﺎس ﺧﺎﮐﺴﺘﺮي‪70 .....................................................................‬‬
‫‪ .3-7‬ﻫﯿﺴﺘﻮﮔﺮام رﻧﮕﯽ ‪72 ............................................................................................‬‬
‫‪ .4-7‬ﺑﺮاﺑﺮﺳﺎزي ﻫﯿﺴﺘﻮﮔﺮام ‪77 .....................................................................................‬‬
‫‪ .5-7‬ﻫﯿﺴﺘﻮﮔﺮامﻫﺎ و ﻣﺎﺳﮏﻫﺎ ‪79 .................................................................................‬‬

‫‪85‬‬ ‫ﻓﺼﻞ ‪ .8‬ﺷﻔﺎفﺳﺎزي و ﺗﺎرﺳﺎزي‬

‫‪ .1-8‬ﻣﯿﺎﻧﮕﯿﻦﮔﯿﺮي ‪86 ..................................................................................................‬‬


‫‪ .2-8‬ﮔﺎوﺳﯽ‪88 ............................................................................................................‬‬
‫‪ .3-8‬ﻣﯿﺎﻧﻪ ‪89 ................................................................................................................‬‬
‫‪ .4-8‬دو ﻃﺮﻓﻪ ‪91 ..........................................................................................................‬‬

‫‪93‬‬ ‫ﻓﺼﻞ ‪ .9‬آﺳﺘﺎﻧﻪﮔﺬاري‬

‫‪ .1-9‬آﺳﺘﺎﻧﻪﮔﺬاري ﺳﺎده ‪93 ..........................................................................................‬‬


‫‪ .2-9‬آﺳﺘﺎﻧﻪﮔﺬاري ﺗﻄﺒﯿﻘﯽ ‪96 .......................................................................................‬‬
‫‪ .3-9‬اوﺗﺴﻮ و رﯾﺪﻟﺮ‪-‬ﮐﺎﻟﻮارد ‪99 ...................................................................................‬‬

‫‪103‬‬ ‫ﻓﺼﻞ ‪ .10‬ﮔﺮادﯾﺎنﻫﺎ و ﺗﺸﺨﯿﺺ ﻟﺒﻪ‬

‫‪ .1-10‬ﻻﭘﻼﺳﯿﻦ و ﺳﻮﺑﻞ ‪103 .......................................................................................‬‬


‫‪ .2-10‬آﺷﮑﺎرﺳﺎز ﻟﺒﻪ ‪108 ................................................................................ Canny‬‬

‫‪111‬‬ ‫ﻓﺼﻞ ‪ .11‬ﮐﺎﻧﺘﻮر‬

‫‪ .1-11‬ﺷﻤﺎرش ﺳﮑﻪ ‪111 .............................................................................................‬‬


‫‪ .2-11‬ﺟﻤﻊ ﺑﻨﺪي ‪117 ..................................................................................................‬‬
WWW.BitaProject.com
‫ﻓﺼﻞ ‪1‬‬
‫ﻣﻘﺪﻣﻪ‬

‫ﻓﺼﻞ ‪ .1‬ﻣﻘﺪﻣﻪ‬

‫ﻫﺪف ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮي درك روﯾﺪادي اﺳﺖ ﮐﻪ در ﯾﮏ ﺗﺼﻮﯾﺮ آﺷﮑﺎر ﻣﯽﺷﻮد‪ .‬ﺑﺮاي‬
‫اﻧﺴﺎن‪ ،‬ﭼﻨﯿﻦ درﮐﯽ ﺑﺴﯿﺎر ﺳﺎده اﺳﺖ؛ اﻣﺎ ﺑﺮاي ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ‪ ،‬اﯾﻦ ﮐﺎر ﺑﺴﯿﺎر دﺷﻮار اﺳﺖ‪.‬‬
‫ﭘﺲ ﭼﺮا ﺑﺎﯾﺪ ﺑﺮاي ﯾﺎدﮔﯿﺮي ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺧﻮد را ﺑﻪ زﺣﻤﺖ اﻧﺪاﺧﺖ؟ ﭼﻮن ﺗﺼﺎوﯾﺮ‬
‫ﻫﻤﻪﺟﺎ ﻫﺴﺘﻨﺪ!‬
‫اﻧﺒﻮه ﺗﺼﺎوﯾﺮ ﺗﻮﻟﯿﺪﺷﺪه ﮐﻪ ﺷﺎﻣﻞ آﻟﺒﻮمﻫﺎي ﻋﮑﺲ ﺷﺨﺼﯽ در ﮔﻮﺷﯽ ﻫﻮﺷﻤﻨﺪ ﺷﻤﺎ‬
‫و ﻋﮑﺲﻫﺎي ﻋﻤﻮﻣﯽ در ﻓﯿﺲﺑﻮك‪ 1‬ﯾﺎ وﯾﺪﯾﻮﻫﺎي ﯾﻮﺗﯿﻮب‪ 2‬ﻣﯽﺷﻮﻧﺪ‪ ،‬ﻣﻮﺟﺐ ﺷﺪهاﻧﺪ ﺗﺎ‬
‫ﺗﻌﺪاد ﺗﺼﺎوﯾﺮي ﮐﻪ در اﺧﺘﯿﺎر دارﯾﻢ ﺑﯿﺶ از ﭘﯿﺶ ﺑﺎﺷﺪ و ﺑﺮ اﯾﻦ اﺳﺎس ﺑﻪ روشﻫﺎﯾﯽ ﺑﺮاي‬
‫ﺗﺠﺰﯾﻪ و ﺗﺤﻠﯿﻞ‪ ،‬ﻃﺒﻘﻪﺑﻨﺪي و ﮐﻤﯽﺳﺎزي ﻣﺤﺘﻮاي اﯾﻦ ﺗﺼﺎوﯾﺮ ﻧﯿﺎز دارﯾﻢ‪.‬‬
‫ﺑﻪﻋﻨﻮان ﻣﺜﺎل‪ ،‬آﯾﺎ اﺧﯿﺮ ًا ﻋﮑﺴﯽ از ﺧﻮد ﯾﺎ ﯾﮑﯽ از دوﺳﺘﺎن ﺧﻮد را در ﻓﯿﺲﺑﻮك ﺗﮓ‬
‫ﮐﺮدهاﯾﺪ؟ ﻓﮑﺮ ﻣﯽﮐﻨﯿﺪ ﻓﯿﺲﺑﻮك ﭼﮕﻮﻧﻪ ﻣﯽﻓﻬﻤﺪ ﮐﻪ ﭼﻬﺮهﻫﺎ در ﮐﺠﺎي ﯾﮏ ﺗﺼﻮﯾﺮ ﻗﺮار‬
‫ﮔﺮﻓﺘﻪاﻧﺪ؟ ﻓﯿﺲﺑﻮك اﻟﮕﻮرﯾﺘﻢﻫﺎي ﺗﺸﺨﯿﺺ ﭼﻬﺮه را در وبﺳﺎﯾﺖ ﺧﻮد ﭘﯿﺎدهﺳﺎزي ﮐﺮده‬
‫اﺳﺖ‪ .‬اﯾﻦ اﻟﮕﻮرﯾﺘﻢﻫﺎ ﻧﻪﺗﻨﻬﺎ ﭼﻬﺮهﻫﺎي ﻣﻮﺟﻮد در ﯾﮏ ﺗﺼﻮﯾﺮ را ﺷﻨﺎﺳﺎﯾﯽ ﻣﯽﮐﻨﻨﺪ‪ ،‬ﺑﻠﮑﻪ‬
‫ﻣﯽﺗﻮاﻧﻨﺪ ﺗﺸﺨﯿﺺ دﻫﻨﺪ ﭼﻬﺮهي ﺷﻨﺎﺳﺎﯾﯽﺷﺪه ﺑﻪ ﭼﻪ ﮐﺴﯽ ﺗﻌﻠﻖ دارد! ﺗﺸﺨﯿﺺ ﭼﻬﺮه‬
‫ﯾﮏ ﮐﺎرﺑﺮد ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ در دﻧﯿﺎي واﻗﻌﯽ اﺳﺖ‪.‬‬
‫ﺑﯿﻨﺎﯾﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ ﭼﻪ ﮐﺎرﺑﺮدﻫﺎي ﻣﻔﯿﺪ دﯾﮕﺮي دارد؟ ﻣﯽﺗﻮاﻧﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از ﻣﺮاﮐﺰ‬
‫ذﺧﯿﺮهﺳﺎزي ﺗﺼﺎوﯾﺮ ﻋﻤﻮﻣﯽ ﻣﺎﻧﻨﺪ ﻓﻠﯿﮑﺮ‪ ،3‬ﻧﻤﺎﯾﺸﯽ از دﻧﯿﺎي ﺳﻪﺑﻌﺪي ﺧﻮد ﺑﺴﺎزﯾﻢ؛ ﻣﯽ‬
‫ﺗﻮاﻧﯿﻢ ﻫﺰاران ﻫﺰار ﻋﮑﺲ از ﻣﻨﻬﺘﻦ‪ 4‬ﮐﻪ ﺗﻮﺳﻂ ﺷﻬﺮوﻧﺪان ﺑﺎ ﺗﻠﻔﻦﻫﺎي ﻫﻮﺷﻤﻨﺪ و‬
‫دورﺑﯿﻦﻫﺎﯾﺸﺎن ﮔﺮﻓﺘﻪ ﺷﺪهاﻧﺪ را داﻧﻠﻮد ﮐﺮده و آنﻫﺎ را ﺗﺠﺰﯾﻪ و ﺗﺤﻠﯿﻞ ﮐﻨﯿﻢ‪ .‬ﺳﭙﺲ اﯾﻦ‬

‫‪1 Facebook‬‬

‫‪2‬‬
‫‪YouTube‬‬
‫‪3 Flickr‬‬

‫‪4 Manhattan‬‬

‫‪View publication stats‬‬

You might also like