Forwarded from هشتگ تبلیغ تخصصی
🎲 دوره آمار برای علم داده با R و Minitab (آنلاین)
🚦مناسب کلیه رشتههای مهندسی و مدیریت و علوم پایه
🛫 مناسب برای مهاجرت شغلی یا تحصیلی به #آمریکا، #اروپا و #استرالیا
🔬 75 ساعت آموزش با مطالعات موردی (Case Study) واقعی و مختلف
🌟 با گواهینامه مورد تایید وزارت علوم، تحقیقات و فناوری
🔗 مشاهده جزئیات دوره و پیشثبت نام رایگان:
https://tihe.ac.ir/preregistration-statistics-for-data-science
🚦مناسب کلیه رشتههای مهندسی و مدیریت و علوم پایه
🛫 مناسب برای مهاجرت شغلی یا تحصیلی به #آمریکا، #اروپا و #استرالیا
🔬 75 ساعت آموزش با مطالعات موردی (Case Study) واقعی و مختلف
🌟 با گواهینامه مورد تایید وزارت علوم، تحقیقات و فناوری
🔗 مشاهده جزئیات دوره و پیشثبت نام رایگان:
https://tihe.ac.ir/preregistration-statistics-for-data-science
This media is not supported in your browser
VIEW IN TELEGRAM
💢Hue, Saturation and Value (HSV)💢
یکی دیگر از مدل های رنگی مناسب مدل رنگی HSV است.
به جای نشان دادن رنگ توسط قرمز، سبز و آبی آن، ما آنها را با رنگ (که در محدوده رنگین کمان است)، اشباع (رنگی بودن رنگ) و ارزش (که همچنین به عنوان روشنایی شناخته می شود، نشان می دهد) یا میزان نور درک شده از آن خارج می شود).
یکی دیگر از مدل های رنگی مناسب مدل رنگی HSV است.
به جای نشان دادن رنگ توسط قرمز، سبز و آبی آن، ما آنها را با رنگ (که در محدوده رنگین کمان است)، اشباع (رنگی بودن رنگ) و ارزش (که همچنین به عنوان روشنایی شناخته می شود، نشان می دهد) یا میزان نور درک شده از آن خارج می شود).
💢Grayscale💢
ما همچنین با تصاویر سیاه و سفید کار خواهیم کرد. تصاویر خاکستری فقط دارای یک کانال رنگی در مقیاس 0 تا 255 هستند که نشان دهنده روشنایی آن پیکسل است، 0 کاملا تاریک (سیاه) و 255 کاملا روشن (سفید) است.
تبدیل تصویر به مقیاس خاکستری به ما آرایه ای دو بعدی از آن میدهد.
ما همچنین با تصاویر سیاه و سفید کار خواهیم کرد. تصاویر خاکستری فقط دارای یک کانال رنگی در مقیاس 0 تا 255 هستند که نشان دهنده روشنایی آن پیکسل است، 0 کاملا تاریک (سیاه) و 255 کاملا روشن (سفید) است.
تبدیل تصویر به مقیاس خاکستری به ما آرایه ای دو بعدی از آن میدهد.
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
print(gray_img)
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
print(gray_img)
[[76 76 76 ..., 57 57 57]
[59 59 58 ..., 58 58 58]
[58 58 57 ..., 58 58 58]
...,
[58 57 57 ..., 53 54 55]
[63 63 63 ..., 59 59 59]
[63 62 63 ..., 59 59 59]]
[59 59 58 ..., 58 58 58]
[58 58 57 ..., 58 58 58]
...,
[58 57 57 ..., 53 54 55]
[63 63 63 ..., 59 59 59]
[63 62 63 ..., 59 59 59]]
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
plt.imshow(cv2.cvtColor(gray_img, cv2.COLOR_GRAY2RGB))
plt.show()
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
plt.imshow(cv2.cvtColor(gray_img, cv2.COLOR_GRAY2RGB))
plt.show()
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
average_color_per_row = np.average(img, axis=0)
average_color = np.average(average_color_per_row, axis=0)
average_color = np.uint8(average_color)
average_color_img = np.array([[average_color]*100]*100, np.uint8)
plt.imshow(average_color_img)
plt.show()
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
average_color_per_row = np.average(img, axis=0)
average_color = np.average(average_color_per_row, axis=0)
average_color = np.uint8(average_color)
average_color_img = np.array([[average_color]*100]*100, np.uint8)
plt.imshow(average_color_img)
plt.show()
This media is not supported in your browser
VIEW IN TELEGRAM
💢تقسیم بندی💢
هنگامی که ما در حال تلاش برای جمع آوری اطلاعات در مورد یک تصویر هستیم، ابتدا باید آن را به ویژگی هایی که علاقه مند هستنم تقسیم کنیم. این تقسیم بندی نامیده می شود. تقسیم بندی تصویر فرآیند نمایش یک تصویر در بخش ها است تا آن را برای تجزیه و تحلیل آسان تر کند
هنگامی که ما در حال تلاش برای جمع آوری اطلاعات در مورد یک تصویر هستیم، ابتدا باید آن را به ویژگی هایی که علاقه مند هستنم تقسیم کنیم. این تقسیم بندی نامیده می شود. تقسیم بندی تصویر فرآیند نمایش یک تصویر در بخش ها است تا آن را برای تجزیه و تحلیل آسان تر کند
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
_, threshold_img = cv2.threshold(gray_img, 60, 255, cv2.THRESH_BINARY)
threshold_img = cv2.cvtColor(threshold_img, cv2.COLOR_GRAY2RGB)
plt.figure(figsize=(10,10))
plt.imshow(threshold_img)
plt.show()
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
_, threshold_img = cv2.threshold(gray_img, 60, 255, cv2.THRESH_BINARY)
threshold_img = cv2.cvtColor(threshold_img, cv2.COLOR_GRAY2RGB)
plt.figure(figsize=(10,10))
plt.imshow(threshold_img)
plt.show()
این کار باعث میشود تصویر به راحتی به روشناییهای مختلف تقسیم شود. و این تنها مربوط به عکسهای خاکستری نیست و ما میتوانیم بخشهایی از عکسهای رنگی را با کانالهای رنگی تقسیم کنیم. آستانه رنگ با HSV بهترین کار را می کند.
به جای یافتن مقدار که تحت یک آستانه است،
ما می توانیم بخشی از تصویر را با رنگ هایی که در یک محدوده هستند پیدا کنیم
با cv2.inRange ().
ما می توانیم بخشی از تصویر را با رنگ هایی که در یک محدوده هستند پیدا کنیم
با cv2.inRange ().
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# threshold for hue channel in blue range
blue_min = np.array([100, 100, 100], np.uint8)
blue_max = np.array([140, 255, 255], np.uint8)
threshold_blue_img = cv2.inRange(img_hsv, blue_min, blue_max)
threshold_blue_img = cv2.cvtColor(threshold_blue_img, cv2.COLOR_GRAY2RGB)
plt.imshow(threshold_blue_img)
plt.show()
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test.jpg')
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# threshold for hue channel in blue range
blue_min = np.array([100, 100, 100], np.uint8)
blue_max = np.array([140, 255, 255], np.uint8)
threshold_blue_img = cv2.inRange(img_hsv, blue_min, blue_max)
threshold_blue_img = cv2.cvtColor(threshold_blue_img, cv2.COLOR_GRAY2RGB)
plt.imshow(threshold_blue_img)
plt.show()
💢Masking with a binary threshold💢
حالا که میتوانیم رنگها را شناسایی کنیم، کارهای جالبی مثل استفاده از تصویر باینری به عنوان ماسک میتوانیم انجام دهیم.
یک ماسک معمولا یک ماتریس از صفرها (برای قطعاتی است که باید حذف شوند) و غیر صفر (برای قطعاتی که میخواهیم نگهداریم).
حالا که میتوانیم رنگها را شناسایی کنیم، کارهای جالبی مثل استفاده از تصویر باینری به عنوان ماسک میتوانیم انجام دهیم.
یک ماسک معمولا یک ماتریس از صفرها (برای قطعاتی است که باید حذف شوند) و غیر صفر (برای قطعاتی که میخواهیم نگهداریم).