python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
💥فیلتر پایین گذر

💥فرمول فیلتر پایین گذر به شرح زیر است:
در حوزه فرکانسی، ما سعی می کنیم D0 متفاوت بگیریم و سپس آن را به حوزه مکانی تبدیل کنیم تا اثر را ببینیم:
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 make_transform_matrix(d,image):
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]=1
else:
transfor_matrix[i,j]=0
return transfor_matrix

d_1 = make_transform_matrix(10,fshift)
d_2 = make_transform_matrix(30,fshift)
d_3 = make_transform_matrix(50,fshift)
plt.subplot(131)
plt.axis("off")
plt.imshow(d_1,cmap="gray")
plt.title('D_1 10')
plt.subplot(132)
plt.axis("off")
plt.title('D_2 30')
plt.imshow(d_2,cmap="gray")
plt.subplot(133)
plt.axis("off")
plt.title("D_3 50")
plt.imshow(d_3,cmap="gray")
plt.show()
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 make_transform_matrix(d,image):
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]=1
else:
transfor_matrix[i,j]=0
return transfor_matrix

d_1 = make_transform_matrix(10,fshift)
d_2 = make_transform_matrix(30,fshift)
d_3 = make_transform_matrix(50,fshift)
img_d1 = np.abs(np.fft.ifft2(np.fft.ifftshift(fshift*d_1)))
img_d2 = np.abs(np.fft.ifft2(np.fft.ifftshift(fshift*d_2)))
img_d3 = np.abs(np.fft.ifft2(np.fft.ifftshift(fshift*d_3)))
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 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 lowPassFilter(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]=1
else:
transfor_matrix[i,j]=0
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
plt.imshow(lowPassFilter(img,60),cmap="gray")
plt.show()
فیلتر پایین گذر حوزه فرکانس
نقطه سفید دامنه فرکانس مجاز است
تصویر 3D
برای انتخاب یه مسیر مناسب شغلی و سرمایه‌گذاری روی مهارتی که بازارِ کارش تو هر فصلی داغه، لازمه یه انتخاب خوب و قدرتمند داشته باشی! پس با ویتامین #C خودتو تقویت کن!

🔸اولین بوت‌کمپ آموزشی-استخدامی سی‌شارپ مکتب شریف
🔸 C# / .Net coding bootcamp

♨️ پیش‌دوره و استعدادسنجی رایگان

کافیه به آی‌دی ما پیام بدی! 🔽‌‌‌‌
🆔 @MaktabSharif_Admin

▪️▫️▪️▫️▪️▫️▪️▫️▪️▫️▪️

🌐 وبسایت |📱کانال تلگرام | 📲 اینستاگرام

💻 #استخدام_با_طعم_آموزش
This media is not supported in your browser
VIEW IN 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
۳ شیء آبی و سبز و قرمز را از تصویر استخراج می کنیم،