python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
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()
بدیهی است زمانی که D0 = 10، لبه سیب روشن و واضحتر است
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
۳ شیء آبی و سبز و قرمز را از تصویر استخراج می کنیم،
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
مراحل پایه در پردازش تصویر:
1) پیش پردازش 2) بخش بندی 3) توصیف و نمایش
4)تشخیص و تفسیر
◀️ پردازش تصویر: فرایند دستکاری یا انجام تغییرات مناسب بر رو ی تصویر، جهت :

1️⃣ درک بهتر برای انسان
2️⃣ درک کامپیوتر (بینایی ماشین)
◀️ تصویر خاکستری تابعی از شدت روشنایی است :
f(x,y)= 0-255
ورودی های تابع، مختصات مکانی و خروجی شدت روشنایی است.

◀️وقتی تصویر را از ورودی(دوربین) گرفتیم:
نمونه برداری میکنیم تا تصویر به پیکسل های جدا از هم تقسیم شود.

◀️برای نمونه برداری جهت دیجیتالی کردن تصویر، اگر ورودی ها را دیجیتالی کنیم به آ ن♦️نمونه برداری میگویند.

◀️اگر خروجی تابع را دیجیتالی کنیم به آن ♦️کوانتیزه کردن میگویند.
◀️با ایجاد تصویر دیجیتالی میتوانیم فرض کنیم یک ماتریس دو بعدی داریم
1️⃣ پیش پردازش: در این مرحله تصویر را با حذف نویز ها یا بالا بردن کنتراست و... ارتقا میدهیم. با با لا رفتن کیفیت تصویر، هم استفاده ی راحتر برای انسان فراهم شده و هم بقیه پردازش ها ، بهتر انجام میشود.
◀️ برای بهبود و ارتقا کیفیت تصویر ، دو روش داریم:
1️⃣حوزه مکانی

2️⃣حوزه فرکانس
1️⃣ در حوزه مکان، پردازش ها و عملیات بر روی پیکسلها انجام میشود و یک تصویر با مشاهده سطح خاکستری توصیف میشود که به دو صورت است:

🔶فیلترهای مکانی بر روی ورودیها یا موقعیت مکانی تابع 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)و ....