import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('sib.jpg',0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
s1 = np.log(np.abs(fshift))
def highPassFilter(image,d):
f = np.fft.fft2(image)
fshift = np.fft.fftshift(f)
def make_transform_matrix(d):
transfor_matrix = np.zeros(image.shape)
center_point = tuple(map(lambda x:(x-1)/2,s1.shape))
for i in range(transfor_matrix.shape[0]):
for j in range(transfor_matrix.shape[1]):
def cal_distance(pa,pb):
from math import sqrt
dis = sqrt((pa[0]-pb[0])**2+(pa[1]-pb[1])**2)
return dis
dis = cal_distance(center_point,(i,j))
if dis <= d:
transfor_matrix[i,j]=0
else:
transfor_matrix[i,j]=1
return transfor_matrix
d_matrix = make_transform_matrix(d)
new_img = np.abs(np.fft.ifft2(np.fft.ifftshift(fshift*d_matrix)))
return new_img
img_d1 = highPassFilter(img,10)
img_d2 = highPassFilter(img,30)
img_d3 = highPassFilter(img,50)
plt.subplot(131)
plt.axis("off")
plt.imshow(img_d1,cmap="gray")
plt.title('D_1 10')
plt.subplot(132)
plt.axis("off")
plt.title('D_2 30')
plt.imshow(img_d2,cmap="gray")
plt.subplot(133)
plt.axis("off")
plt.title("D_3 50")
plt.imshow(img_d3,cmap="gray")
plt.show()
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('sib.jpg',0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
s1 = np.log(np.abs(fshift))
def highPassFilter(image,d):
f = np.fft.fft2(image)
fshift = np.fft.fftshift(f)
def make_transform_matrix(d):
transfor_matrix = np.zeros(image.shape)
center_point = tuple(map(lambda x:(x-1)/2,s1.shape))
for i in range(transfor_matrix.shape[0]):
for j in range(transfor_matrix.shape[1]):
def cal_distance(pa,pb):
from math import sqrt
dis = sqrt((pa[0]-pb[0])**2+(pa[1]-pb[1])**2)
return dis
dis = cal_distance(center_point,(i,j))
if dis <= d:
transfor_matrix[i,j]=0
else:
transfor_matrix[i,j]=1
return transfor_matrix
d_matrix = make_transform_matrix(d)
new_img = np.abs(np.fft.ifft2(np.fft.ifftshift(fshift*d_matrix)))
return new_img
img_d1 = highPassFilter(img,10)
img_d2 = highPassFilter(img,30)
img_d3 = highPassFilter(img,50)
plt.subplot(131)
plt.axis("off")
plt.imshow(img_d1,cmap="gray")
plt.title('D_1 10')
plt.subplot(132)
plt.axis("off")
plt.title('D_2 30')
plt.imshow(img_d2,cmap="gray")
plt.subplot(133)
plt.axis("off")
plt.title("D_3 50")
plt.imshow(img_d3,cmap="gray")
plt.show()
http://sufra.ir/2018/01/22/%d8%aa%d8%ba%db%8c%db%8c%d8%b1-%d9%81%d8%b6%d8%a7%d9%87%d8%a7%db%8c-%d8%b1%d9%86%da%af/
تغییر فضاهای رنگ- opencv
۳ شیء آبی و سبز و قرمز را از تصویر استخراج می کنیم،
تغییر فضاهای رنگ- opencv
۳ شیء آبی و سبز و قرمز را از تصویر استخراج می کنیم،
This media is not supported in your browser
VIEW IN TELEGRAM
💥بخش بندی
💥آستانه گداری تصویر چیست؟
💥Simple Thresholding
http://sufra.ir/2018/01/26/%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%DB%8C%D8%B2%D8%AF%D9%87%D9%85/
💥آستانه گداری تصویر چیست؟
💥Simple Thresholding
http://sufra.ir/2018/01/26/%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%DB%8C%D8%B2%D8%AF%D9%87%D9%85/
This media is not supported in your browser
VIEW IN TELEGRAM
◀️ پردازش تصویر: فرایند دستکاری یا انجام تغییرات مناسب بر رو ی تصویر، جهت :
1️⃣ درک بهتر برای انسان
2️⃣ درک کامپیوتر (بینایی ماشین)
1️⃣ درک بهتر برای انسان
2️⃣ درک کامپیوتر (بینایی ماشین)
◀️ تصویر خاکستری تابعی از شدت روشنایی است :
f(x,y)= 0-255
ورودی های تابع، مختصات مکانی و خروجی شدت روشنایی است.
◀️وقتی تصویر را از ورودی(دوربین) گرفتیم:
نمونه برداری میکنیم تا تصویر به پیکسل های جدا از هم تقسیم شود.
◀️برای نمونه برداری جهت دیجیتالی کردن تصویر، اگر ورودی ها را دیجیتالی کنیم به آ ن♦️نمونه برداری میگویند.
◀️اگر خروجی تابع را دیجیتالی کنیم به آن ♦️کوانتیزه کردن میگویند.
◀️با ایجاد تصویر دیجیتالی میتوانیم فرض کنیم یک ماتریس دو بعدی داریم
f(x,y)= 0-255
ورودی های تابع، مختصات مکانی و خروجی شدت روشنایی است.
◀️وقتی تصویر را از ورودی(دوربین) گرفتیم:
نمونه برداری میکنیم تا تصویر به پیکسل های جدا از هم تقسیم شود.
◀️برای نمونه برداری جهت دیجیتالی کردن تصویر، اگر ورودی ها را دیجیتالی کنیم به آ ن♦️نمونه برداری میگویند.
◀️اگر خروجی تابع را دیجیتالی کنیم به آن ♦️کوانتیزه کردن میگویند.
◀️با ایجاد تصویر دیجیتالی میتوانیم فرض کنیم یک ماتریس دو بعدی داریم
1️⃣ پیش پردازش: در این مرحله تصویر را با حذف نویز ها یا بالا بردن کنتراست و... ارتقا میدهیم. با با لا رفتن کیفیت تصویر، هم استفاده ی راحتر برای انسان فراهم شده و هم بقیه پردازش ها ، بهتر انجام میشود.
◀️ برای بهبود و ارتقا کیفیت تصویر ، دو روش داریم:
1️⃣حوزه مکانی
2️⃣حوزه فرکانس
◀️ برای بهبود و ارتقا کیفیت تصویر ، دو روش داریم:
1️⃣حوزه مکانی
2️⃣حوزه فرکانس
1️⃣ در حوزه مکان، پردازش ها و عملیات بر روی پیکسلها انجام میشود و یک تصویر با مشاهده سطح خاکستری توصیف میشود که به دو صورت است:
🔶فیلترهای مکانی بر روی ورودیها یا موقعیت مکانی تابع f(x,y) ،
که با توجه به پیکسلهای همسایه انجام میشود. فیلتر ها به دو دسته خطی و غیر خطی هستند.
⏮عملیات فیلترینگ شامل نرم کردن(فیلتر های پایین گذر) یا تیز کردن( فیلترهای بالا گذر) میباشد.
🔶 تبدیلات بر روی خروجی تابع که نور یا شدت روشنایی نامیده میشود، انجام میشو د. در واقع تبدیلات بدون توجه به پیکسل های همسایه انجام میشود.
🔶فیلترهای مکانی بر روی ورودیها یا موقعیت مکانی تابع f(x,y) ،
که با توجه به پیکسلهای همسایه انجام میشود. فیلتر ها به دو دسته خطی و غیر خطی هستند.
⏮عملیات فیلترینگ شامل نرم کردن(فیلتر های پایین گذر) یا تیز کردن( فیلترهای بالا گذر) میباشد.
🔶 تبدیلات بر روی خروجی تابع که نور یا شدت روشنایی نامیده میشود، انجام میشو د. در واقع تبدیلات بدون توجه به پیکسل های همسایه انجام میشود.
💥Intensity Transformation
Intensity transformation functions (negative, log,
gamma),
intensity and bit-place slicing, contrast
stretching
Histograms: equalization, matching, local processing
🔶تبدیلات بر روی شدت روشنایی (تبدیلات مکانی)شامل موارد زیر میباشد:
1) تعدیل هیستوگرام یا
Histogram Equalization
2) تفریق (subtraction )
و ....
🔶 فیلترهای مکانی: فیلتر هایی که اندازه تغییرات تصویر را مانند بالاگذر (تغییرات زیاد) یا پایین گذر (تغییرات کم) و ... حذف میکنند.
🔸🔸 پایین گذر(مات و نرم کردن): تغییرات زیاد را حذف و تغییرات کم را رد میکند
خطی
1) فیلتر میانگین: مقدار پیکسل های همسایه جایگزین پیکسل مرکزی میشود.(کانولوشن).
2)گوسی .
غیرخطی:
1)میانه
و ...
🔸🔸 بالا گذر(تیز و لبه دار کردن)
تغییرا ت کم را حذف و تغییرات زیاد را رد میکند.
1) لاپلاسین
2) سوبل
3)و ....
Intensity transformation functions (negative, log,
gamma),
intensity and bit-place slicing, contrast
stretching
Histograms: equalization, matching, local processing
🔶تبدیلات بر روی شدت روشنایی (تبدیلات مکانی)شامل موارد زیر میباشد:
1) تعدیل هیستوگرام یا
Histogram Equalization
2) تفریق (subtraction )
و ....
🔶 فیلترهای مکانی: فیلتر هایی که اندازه تغییرات تصویر را مانند بالاگذر (تغییرات زیاد) یا پایین گذر (تغییرات کم) و ... حذف میکنند.
🔸🔸 پایین گذر(مات و نرم کردن): تغییرات زیاد را حذف و تغییرات کم را رد میکند
خطی
1) فیلتر میانگین: مقدار پیکسل های همسایه جایگزین پیکسل مرکزی میشود.(کانولوشن).
2)گوسی .
غیرخطی:
1)میانه
و ...
🔸🔸 بالا گذر(تیز و لبه دار کردن)
تغییرا ت کم را حذف و تغییرات زیاد را رد میکند.
1) لاپلاسین
2) سوبل
3)و ....