سلام من علیرضام یک برنامه نویس
پردازش تصویر در پایتون ( قسمت دوم )
قسمت اول ☜(゚ヮ゚☜)
بریم شروع کنیم
خب دوستان فکر کنم خیلی ها منتظر این قسمت بودن اول از همه بگم امروز چه چیز هایی رو می خوایم درس بدیم
مطالب امروز درباره 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("win1",img)
cv2.waitKey()
مطلبی دیگر از این انتشارات
اگه وب سرویس نبودش...
مطلبی دیگر از این انتشارات
طراحی دیتابیس و کشیدن ERD
مطلبی دیگر از این انتشارات
مقایسه برنامه نویسی asynchronous و synchronous