数字图像处理论文

您当前的位置:学术堂 > 计算机论文 > 数字图像处理论文 >

Python语言在数字图像处理课程的应用研究(2)

来源:学术堂 作者:原来是喵
发布于:2016-10-25 共4117字
  3频率域滤波
  
  频率域滤波与空间滤波是对图像增强一个问题的两种殊途同归的方式[8].在分析图像信号的频率特性时,对于一幅图像,直流分量表示预想的平均灰度,低频分量代表了大面积背景区域和缓慢变化部分,高频部分代表了它的边缘、细节、跳跃部分以及颗粒噪声。截取频率的低频分量,对其作傅立叶反变换,得到的就是模糊后的图像; 截取频率的高频分量,对其作傅立叶反变换,得到的就是锐化后的图像[9].opencv包中DFT(Discrete Fourier Transform) 和IDFT(inverse DFT) 算法用于傅立叶变换。本次研究中同时利用了numpy包中fft.fftshift傅立叶变换函数[10],Python代码如下,其结果如图3.
  
  频谱图(左)、高通移去低频DFT图像(中)、低通移去高频IDTF图像(右)
  
  img = cv2.imread(‘myson.jpg',0)
  
  rows,cols = img.shapecrow,ccol = rows / 2,cols / 2 #取中心#
  
  mask1 = np.zeros( (rows,cols,2) ,np.uint8)#建立一个遮罩中心都是1,边缘都是0#
  
  mask1[crow-30:crow+30,ccol-30:ccol+30]= 1
  
  mask2 = np.ones( (rows,cols,2) ,np.uint8)#建立一个遮罩中心都是0,边缘都是1#
  
  mask2[crow-30:crow+30,ccol-30:ccol+30]= 0
  
  dft = cv2.dft(np.float32(img) ,flags = cv2.DFT_COMPLEX_OUTPUT)# #傅立叶变换,输入图像转成np.float32型频谱#
  
  dft_shift = np.fft.fftshift(dft)#反换位,低频部分移到四周,高频部分移到中间#
  
  magnitude_spectrum = 20* np.log(cv2.magnitude(dft_shift[: ,: ,0],dft_shift[: ,: ,1]) )
  
  fshift1 = dft_shift* mask1 #对遮罩和频谱进行IDFT#
  
  fshift2 = dft_shift* mask2
  
  f_ishift1 = np.fft.ifftshift(fshift1)#做数据反转#
  
  f_ishift2 = np.fft.ifftshift(fshift2)
  
  img_back1 = cv2.idft(f_ishift1)
  
  img_back1 = cv2.magnitude(img_back1[: ,: ,0],img_back1[: ,: ,1])#将频谱转换为可视图像#
  
  img_back2 = cv2.idft(f_ishift2)
  
  img_back2 = cv2.magnitude(img_back2[: ,: ,0],img_back2[: ,: ,1])
  
  4边缘检测
  
  边缘检测是图像处理和计算机视觉中的基本问题,目的是标识数字图像中亮度变化明显的点,解决图像分割的问题[11].常见的算法包括: 差分边缘检测、梯度边缘检测、ROBERT边缘检测[12]. opencv包中有Canny算法、Sobel算法、Laplace算法,Scharr滤波器以及Hough直线检测可以完成相应的边缘检测。本次实验中笔者利用sobel和Canny边缘两种方法,并借助高斯模糊解决图像边缘检测问题[13].代码如下,其结果如图4.
  
  sobel(左)和Canny(右)边缘结果图
  
  img = cv2.imread(“ myson.jpg”,0)
  
  img = cv2.Gaussian Blur(img,(3,3) ,0)#用高斯平滑处理原图像降噪#
  
  x = cv2.Sobel(img,cv2.CV_16S,1,0)#X轴sobel边缘检测#
  
  y = cv2.Sobel(img,cv2.CV_16S,0,1)#y轴sobel边缘检测#
  
  abs X = cv2.convert Scale Abs(x)#转回uint8,否则将无法显示图像#
  
  abs Y = cv2.convert Scale Abs(y)
  
  dst = cv2.add Weighted(abs X,0.5,abs Y,0.5,0)#sobel边缘检测#
  
  canny = cv2.Canny(img,50,150)#Canny边缘检测#
  
相关内容推荐
  • 思维导图在数字图像处理课程中的具体使用

    思维导图由着名教育学家托尼博赞于20世纪60年代首创而成。作为一种有效的创造性思维工具,它已经被广泛应用在个人的自我分析和问题解决,家庭和商业的各种计划,甚至企业的员工培训和经验管理等方面[1].特别的,教育界也通过研究和挖掘思维导图的潜在教...

  • 数字图像处理课程中协同式教学模式应用

    引言图像是信息传递的一个重要载体。数字图像处理是目前信息处理技术中发展迅速且得到广泛应用的一个新兴学科,其已经渗透到电子、通信、医学、交通等各个学科领域甚至与人们的日常生活密不可分。数字图像处理的主要任务是研究如何用计算机对图像进行分析和...

  • 展现数字图像处理课程实验内容的GUI平台构建

    随着计算机与信息技术的高速发展,数字图像处理技术得到快速的发展,目前已成为计算机科学、医学、生物学、工程学、信息科学等领域各学科之间学习和研究的对象。但是数字图像处理这门学科需要编写大量的代码,才能显示数字图像处理的效果,例如图像增强,图...

相关标签:
返回:数字图像处理论文