import numpy as np
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
import matplotlib.pyplot as plt
from keras.optimizers import SGD
import tensorflow as tf
from PIL import Image,ImageFilter
from image_handle import *
import os
import cv2
#高通滤波
img1=cv2.imread('C:/Users/18301/Desktop/1.jpg',0)
f=np.fft.fft2(img1)
fshift=np.fft.fftshift(f)
rows,cols=img1.shape
crow,ccol=np.ceil(rows/2),np.ceil(cols/2)
crow,ccol=np.int(crow),np.int(ccol)
#注意fshift是用来与原图像进行掩模操作的但是具体的,我也看着很抽象。这一部分与低通的有些相对的意思。
fshift[crow-30:crow+30,ccol-30:ccol+30]=0
f_ishift=np.fft.ifftshift(fshift)
img_back=np.fft.ifft2(fshift)
img_back=np.abs(img_back)
plt.subplot(1,2,1),plt.imshow(img1)
plt.title('input image'),plt.xticks([]),plt.yticks([])
plt.subplot(1,2,2),plt.imshow(img_back)
plt.title('image after HPF'),plt.xticks([]),plt.yticks([])
plt.show()
# def highPassFilter(image,d):
# f = np.fft.fft2(image)
# fshift = np.fft.fftshift(f)
# s1 = np.log(np.abs(fshift))
# 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
#
# image_dir='C:/Users/18301/Desktop/'
# image = Image.open(image_dir+'0.jpg')#原始图片过大
# image_down=image.resize((500, 500), Image.ANTIALIAS)
# image_np=np.array(image_down)
# new_image=highPassFilter(image_np,0)
# plt.imshow(new_image),plt.show()
# image_down.show()
# image_np=np.array(image_down)
#傅里叶正变换
# f = np.fft.fft2(image_down)
# fshift = np.fft.fftshift(f)
# #取绝对值:将复数变化成实数
# #取对数的目的为了将数据变化到较小的范围(比如0-255)
# s1 = np.log(np.abs(fshift))
# # 傅里叶逆变换
# f1shift = np.fft.ifftshift(fshift)
# img_back = np.fft.ifft2(f1shift)
# #出来的是复数,无法显示
# img_back = np.abs(img_back)
#
# plt.imshow(img_back),plt.show()
# # plt.imshow(f)
# # print("cuiwei")
深度学习实现零件缺陷检测源代码(1)_深度学习vgg_深度残差网络_深度学习检测_resnet缺陷检测_vgg
版权申诉
5星 · 超过95%的资源 77 浏览量
2021-09-11
15:01:44
上传
评论 9
收藏 13KB RAR 举报
心梓
- 粉丝: 808
- 资源: 8057
最新资源
- 常用工具集参考用于图像等数据处理
- 音乐展示网页、基于Stenography的图像数字水印添加与提取,以及基于颜色矩和Tamura算法的图像相似度评估算法py源码
- 基于EmguCV(OpenCV .net封装),图像数字水印加解密算法的实现,其中包含最低有效位算法,离散傅里叶变换算法+文档书
- 基于matlab+DWT的图像水印项目,数字水印+源代码+文档说明+图片+报告pdf
- (优秀毕业设计)基于python实现的数字图像可视化水印系统的设计与实现,多种数字算法实现+源代码+文档说明+理论演示pdf
- 基于DWT-DCT-SVD和deflate压缩的数字水印方法python源码+Gui界面+演示视频(高分毕业设计)
- 基于matlab实现DWT、DCT、SVD算法数字图像水印可视化系统+GUI界面+文档说明+详细注释(高分毕业设计)
- NCIAE-Data-Structure大一大二笔记
- 学习wireshark笔记
- digital-image-数据可视化笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页