تصویر res.png را که داخل پوشه ایجاد شده را باز میکنیم:
💢💢💢
💢💢💢
This media is not supported in your browser
VIEW IN TELEGRAM
python_developer
تصویر اصلی
💢💢💢💢💢💢💢💢💢
ادامه:👇🏻👇🏻👇🏻👇🏻👇🏻
1️⃣پیش پردازش:
✅مرحله اول :
تصویر را به حالت grayscale برده تا توسط Gaussian blur، تصویر مات و نویز ها حذف شود.
✅مرحله دوم:
سپس آستانه گذاری ساده بر روی تصویر پیش پردازش شده اعمال میکنیم.
💢💢💢💢💢
ادامه:👇🏻👇🏻👇🏻👇🏻👇🏻
1️⃣پیش پردازش:
✅مرحله اول :
تصویر را به حالت grayscale برده تا توسط Gaussian blur، تصویر مات و نویز ها حذف شود.
✅مرحله دوم:
سپس آستانه گذاری ساده بر روی تصویر پیش پردازش شده اعمال میکنیم.
💢💢💢💢💢
import cv2
def sufra():
img = cv2.imread('coins.jpg')
coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0)
_, coins_binary = cv2.threshold(coins_preprocessed, 130, 255, cv2.THRESH_BINARY)
coins_binary = cv2.bitwise_not(coins_binary)
cv2.imshow('image', coins_binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
print ("waitkey")
if name == 'main':
sufra()
💢💢💢💢💢
def sufra():
img = cv2.imread('coins.jpg')
coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0)
_, coins_binary = cv2.threshold(coins_preprocessed, 130, 255, cv2.THRESH_BINARY)
coins_binary = cv2.bitwise_not(coins_binary)
cv2.imshow('image', coins_binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
print ("waitkey")
if name == 'main':
sufra()
💢💢💢💢💢
2️⃣پیدا کردن کانتور ها(contours)
کانتورها ، نقاط دنباله دار، که یک منحنی بسته راتشکیل داده و در بر دارنده تصویر هستند.
💢کانتور ها ابزاری مفیدبرای تشخیص اشیا و ویژگیها، همچنینن تجزیه و تحلیل اشکال، هستند.
✅با استفاده از cv2.findContours ()، مرز یا لبه های هر سکه را پیدا خواهیم کرد.
✅انتخاب پرچم
cv2.RETR_EXTERNAL،
تنها خطوط خارجی را به تابع باز می گرداند. بنابراین جزئيات کوچکتر روی سطح سکه را انتخاب نمی کند.
✅ برای به دست آوردن محدوده کانتورها، ما از cv2.contourArea () استفاده می کنیم.
💢💢
کانتورها ، نقاط دنباله دار، که یک منحنی بسته راتشکیل داده و در بر دارنده تصویر هستند.
💢کانتور ها ابزاری مفیدبرای تشخیص اشیا و ویژگیها، همچنینن تجزیه و تحلیل اشکال، هستند.
✅با استفاده از cv2.findContours ()، مرز یا لبه های هر سکه را پیدا خواهیم کرد.
✅انتخاب پرچم
cv2.RETR_EXTERNAL،
تنها خطوط خارجی را به تابع باز می گرداند. بنابراین جزئيات کوچکتر روی سطح سکه را انتخاب نمی کند.
✅ برای به دست آوردن محدوده کانتورها، ما از cv2.contourArea () استفاده می کنیم.
💢💢
import cv2
import numpy as np
img = cv2.imread('coins.jpg')
coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0)
_, coins_binary = cv2.threshold(coins_preprocessed, 130, 255, cv2.THRESH_BINARY)
coins_binary = cv2.bitwise_not(coins_binary)
_,coins_contours, _ = cv2.findContours(coins_binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# make copy of image
coins_and_contours = np.copy(img)
# find contours of large enough area
min_coin_area = 60
large_contours = [cnt for cnt in coins_contours if cv2.contourArea(cnt) > min_coin_area]
# draw contours
cv2.drawContours(coins_and_contours, large_contours, -1, (255,0,0))
# print number of contours
print('number of coins: %d' % len(large_contours))
# create copy of image to draw bounding boxes
bounding_img = np.copy(img)
# for each contour find bounding box and draw rectangle
for contour in large_contours:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(bounding_img, (x, y), (x + w, y + h), (0, 255, 0), 3)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', bounding_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
💢💢💢💢💢
import numpy as np
img = cv2.imread('coins.jpg')
coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0)
_, coins_binary = cv2.threshold(coins_preprocessed, 130, 255, cv2.THRESH_BINARY)
coins_binary = cv2.bitwise_not(coins_binary)
_,coins_contours, _ = cv2.findContours(coins_binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# make copy of image
coins_and_contours = np.copy(img)
# find contours of large enough area
min_coin_area = 60
large_contours = [cnt for cnt in coins_contours if cv2.contourArea(cnt) > min_coin_area]
# draw contours
cv2.drawContours(coins_and_contours, large_contours, -1, (255,0,0))
# print number of contours
print('number of coins: %d' % len(large_contours))
# create copy of image to draw bounding boxes
bounding_img = np.copy(img)
# for each contour find bounding box and draw rectangle
for contour in large_contours:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(bounding_img, (x, y), (x + w, y + h), (0, 255, 0), 3)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', bounding_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
💢💢💢💢💢
python_developer
import cv2 def sufra(): img = cv2.imread('coins.jpg') coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.namedWindow('image', cv2.WINDOW_NORMAL) coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0) _, coins_binary = cv2.threshold(coins_preprocessed…
⁉️اگر کد منتخب ارر داد کد زیر را امتحان کنید:
import cv2
def sufra():
img = cv2.imread('coins.jpg')
coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0)
_, coins_binary = cv2.threshold(coins_preprocessed, 130, 255, cv2.THRESH_BINARY)
coins_binary = cv2.bitwise_not(coins_binary)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', coins_binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
if name == 'main':
sufra()
import cv2
def sufra():
img = cv2.imread('coins.jpg')
coins_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
coins_preprocessed = cv2.GaussianBlur(coins_gray, (5, 5), 0)
_, coins_binary = cv2.threshold(coins_preprocessed, 130, 255, cv2.THRESH_BINARY)
coins_binary = cv2.bitwise_not(coins_binary)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', coins_binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
if name == 'main':
sufra()
💢دومین پروژه💢
2) تشخیص چهره
تشخیص چهره یکی از داغترین موضوعات بینایی کامپیوتر در چند سال اخیر بوده است.
این تکنولوژی قابل استفاده و همه جا در دسترس است.
✅ در همین ابتدا سه مفهوم زیر را به خاطر بسپارید:
💡1️⃣:مفهموم Face detection: تشخیص چهره واینکه مورد مربوط به چهره یک فرد باشد.
💡2️⃣:مفهومFace recognition: تشخیص یا شناخت چهره یک فرد خاص مثلا علی.
💡3️⃣:مفهوم facial expression recignition:تشخیص حالت چهره ، اینکه یه فردی خوشحاله یا غمگینه و....
💢💢💢💢💢
2) تشخیص چهره
تشخیص چهره یکی از داغترین موضوعات بینایی کامپیوتر در چند سال اخیر بوده است.
این تکنولوژی قابل استفاده و همه جا در دسترس است.
✅ در همین ابتدا سه مفهوم زیر را به خاطر بسپارید:
💡1️⃣:مفهموم Face detection: تشخیص چهره واینکه مورد مربوط به چهره یک فرد باشد.
💡2️⃣:مفهومFace recognition: تشخیص یا شناخت چهره یک فرد خاص مثلا علی.
💡3️⃣:مفهوم facial expression recignition:تشخیص حالت چهره ، اینکه یه فردی خوشحاله یا غمگینه و....
💢💢💢💢💢
✅احتمالا در این پروژه ، اول face detectionو سپس face recognition را با استفاده از opencv مورد بحث قرار دهیم.
💢💢💢
💢💢💢
💢1. FACE DETECTION💢
1️⃣ پیش زمینه ای از تشخیص چهره:
یکی ازکاربردهای تشخیص چهره، برای باز کردن قفل گوشی با یک نگاه میباشد.
به طور خلاصه Face DetectionوFace Recognition (تشخیص چهره و شناسایی چهره) هنگام باز کردن قفل گوشی به صورت زیر میباشد:
شما به گوشی خود نگاه می کنید و چهره شما را از یک تصویر استخراج می کند (نام مریم برای این روند تشخیص چهره (face detection)است). سپس، چهره فعلی را با آن که قبل از آن در طی تمرین ذخیره شده بود، مقایسه می کند و اگر هر دو آنها مطابقت داشته باشد (نام مریم برای شناسایی چهره (face recognition)است)، قفل را باز می کند.
✅نمونه ی دیگری که توسط نرم افزارهای تشخیص و شناسایی چهره اجام میشود ، خود پردازها میباشند که با شناسایی چهره ی افراد امکان برداشت پول را به آنها میدهند.
💢💢💢
1️⃣ پیش زمینه ای از تشخیص چهره:
یکی ازکاربردهای تشخیص چهره، برای باز کردن قفل گوشی با یک نگاه میباشد.
به طور خلاصه Face DetectionوFace Recognition (تشخیص چهره و شناسایی چهره) هنگام باز کردن قفل گوشی به صورت زیر میباشد:
شما به گوشی خود نگاه می کنید و چهره شما را از یک تصویر استخراج می کند (نام مریم برای این روند تشخیص چهره (face detection)است). سپس، چهره فعلی را با آن که قبل از آن در طی تمرین ذخیره شده بود، مقایسه می کند و اگر هر دو آنها مطابقت داشته باشد (نام مریم برای شناسایی چهره (face recognition)است)، قفل را باز می کند.
✅نمونه ی دیگری که توسط نرم افزارهای تشخیص و شناسایی چهره اجام میشود ، خود پردازها میباشند که با شناسایی چهره ی افراد امکان برداشت پول را به آنها میدهند.
💢💢💢