پردازش تصویر در پایتون ( قسمت دوم )

قسمت اول ☜(ﾟヮﾟ☜) https://vrgl.ir/lx9QY بریم شروع کنیم خب دوستان فکر کنم خیلی ها منتظر این قسمت بودن اول از همه بگم امروز چه چیز هایی رو می خوایم درس بدیممطالب امروز درباره resize کردن یا همون تغییر اندازه عکس که وارد کردیم و رسم شکل و ... روی عکس پس حتما همراه ما باشیدریسایز ___ Resizeعکس از سورس کد ریسایزخب خیلی ها ازم می پرسیدن که وقتی ما یک عکس را فراخوانی می کنیم داخل پایتون عکس خیلی بزرگ نمایش داده می شود که منم داخل کامنت ها جواب ایشان را دادم در اصل اندازه پنجره و عکس شما مربوط به مقدار px ( پیکسل ) های عکس شماست ولی یک راه حل برای اینکه این عکس را داخل خود پایتون ریسایز کرد وجود داره در اصل شما تا اخر این اموزش رو اگر با ما همراه باشید می تونید یک ابزار ساده مثل فوتوشاپ را خلق کنید خب اول از همه برای ریسایز کردن یک کد هست به نام cv2.resize که داخل این کد سه پارامتر قرار می گیره که در ادامه توضیح می دمپارامتر اول src : یا همون عکسمونپارامتر دوم dim : همون اندازه و scale عکسپارامتر سوم interpolation : که خودمم نمی دونم ولی همیشه من روی یک چیز می زارمش scale_percent =100 width = int(img.shape[1] * scale_percent /100) height = int(img.shape[0] * scale_percent /100) dim = (width, height) img = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)کدی که مشاهده می کنید کد ریسایز در متغیر scale_percent یک عدد باید باشه بین 1 تا 100 در ادامه می گم چرا 1 تا 100 ولی خب در اصل نسبت عکس شما با درصد مشخص می کنید برای مثال می گید عکس نصف بشه مقدار 50 را می دید به متغیردر ادامه دو تا متغیر هست به نام width و height که این دوتا اندازه طول و عرض عکس شما هستن که در داخل هر متغیر من یک درصد تعریف کردم که از 1 تا 100 تا بتونیم راحت تر ریسایز کنیم برای کسایی که تازه کاران نمی خواد زیاد به اینا دقت کنننبعد میایم طول و عرض به متغیر dim می دیم تا به کد ریسایز بده و عکس ریسایز بشه خط اخر من ریسایز عکس رو توی خود متغیر اصلی عکس سیو کردم که زیاد شلوغ نشه ولی شما می تونید براش یک متغیر جدا تعریف کنید و اون رو imshow کنید من در عکس بالا یک متغیر جدا ساختم و عکس ریسایز شده را ریختم داخلش و هم عکس معمولی را نمایش دادم و هم ریسایز شده را من مقدار scale_percent را دادم 50 رسم شکل خب بریم روی رسم شکل روی تصویرimg = cv2.line(img,(0,0),(511,511),(255,0,0),5)خط کد بالا به cv2 می گه یک خط بکش از پیکسل 0 در 0 تا پیکس 511 در 511 و رنگش هم به صورت bgr ابی باشه و پهنی اون خط هم 5 باشه به همین راحتی برای رسم شکل های دیگه هم کد هاشو اینجا می زارم حتما برید ببینید داخل جلسه بعد درباره شکل ها و چند مبحث جذاب دیگه صحبت می کنیممربع و مستطیل : img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) دایره و بیضی : img = cv2.circle(img,(447,63), 63, (0,0,255), -1) نیم دایره یا بیضی : img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)اگر دقت کنید داخل کد شکل های هندسی عدد اخر که مشخص کننده پهنای خط صاف بود در اینجا بعضی مواقع منفی یک نکته بگم در شکل هندسی پارامتر اخر منفی باشه یعنی باید شکل تو پر باشه و اگر مثبت باشه یعنی شکل نباید تو پر باشه و ان عدد نشانگر پهنای خط شکل هستش ممنون که تا اینجا همراه ما بودید امیدوارم خوشتون اومده باشه خدانگهدارسورس کد این جلسه import cv2 #vared kardan aks dakhel python ------>> img = cv2.imread('book.jpg',1) #tanzim andaze aks ( RESIZE ) ----->> scale_percent =100 width = int(img.shape[1] * scale_percent /100) height = int(img.shape[0] * scale_percent /100) dim = (width, height) # resize shodan aks ---->> img = cv2.resize(img, dim, interpolation=cv2.INTER_AREA) img = cv2.line(img,(447,63),(555,555),(0,90,90), 10) img = cv2.circle(img,(47,63), 63, (0,0,255), -1) img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) # namayesh aks ------>> cv2.imshow(&quotwin1&quot,img) cv2.waitKey()