在python中使用opencv进行dft和idft去除图像条纹

这篇具有很好参考价值的文章主要介绍了在python中使用opencv进行dft和idft去除图像条纹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

def dft(path):
    img=cv2.imread(path,0)
    if img is None:
        print('load img fail\n')
        return
    dst=cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)
    dst_center=np.fft.fftshift(dst)#将高频移动到中间
    rows,cols = img.shape
    # 定义掩模:生成的掩模中间为1周围为0
    crow, ccol = int(img.shape[0] / 2), int(img.shape[1] / 2)  # 求得图像的中心点位置
    mask = np.zeros((img.shape[0], img.shape[1], 2), np.uint8)
    mask[::] = 1
    mask[int(rows/2):int(rows/2 + 1),:] = 0
    mask[int(rows/2):int(rows/2 + 1),ccol-int(ccol/32):ccol+int(ccol/32)] = 1
    dst_center = dst_center*mask
    result=20*np.log(cv2.magnitude(dst_center[:,:,0],dst_center[:,:,1]))
    # 使用np.fft.ifftshift将低频移动到原来的位置
    dst_origin = np.fft.ifftshift(dst_center)
    # 使用cv2.idft进行傅里叶的逆变化
    img_idft = cv2.idft(dst_origin)
    # 使用cv2.magnitude转化为空间域内
    img_idft = cv2.magnitude(img_idft[:, :, 0], img_idft[:, :, 1],(rows,cols))
    # 显示图像
    plt.subplot(131)
    plt.imshow(img, cmap="gray")
    plt.axis("off")
    plt.title('origin')
    plt.subplot(132)
    plt.imshow(result, cmap="gray")
    plt.axis("off")
    plt.title('dft')
    plt.subplot(133)
    plt.axis("off")
    plt.imshow(img_idft, cmap=plt.cm.gray)
    plt.title('idft')
    plt.show()

首先加载图像,然后进行dft计算频谱图,之后使用掩膜,将竖条纹的频谱信号去除,再逆变换还原为图像,示例图像中为竖向条纹,在频谱图中表现在X轴上

结果如下

图像表面的条纹去除,opencv,python,人工智能

中间需要保留通过的半径根据需要调整,我的代码中写为了图像宽度的1/16

以此篇文章作为学习记录文章来源地址https://www.toymoban.com/news/detail-861288.html

到了这里,关于在python中使用opencv进行dft和idft去除图像条纹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python opencv 去除图像四周黑边的一种做法

    注意,图像去黑边有很多种算法设计思路,具体能否起作用要视待处理图像的质量等因素来确定。 这里给出的思路为,将图像以黑白的形式读进去,利用opencv的connectedComponentsWithStats函数求连通域。那么对于有黑边的图像来说,图像由内容和黑边组成,因此 最大 的连通域就是

    2024年02月12日
    浏览(49)
  • Python使用Opencv进行图像人脸、眼睛识别实例演示

    效果展示 下面使用 haarcasecade_eye.xml 进行人眼识别的效果图: 人脸识别是一种可以自动检测图像或视频中存在的人脸的技术。它可以用于各种应用,例如安全控制,自动标记照片和视频,以及人脸识别解锁设备等。在这篇博客中,我们将详细讨论人脸识别技术,以及如何使用

    2023年04月17日
    浏览(58)
  • 如何使用Python中的OpenCV对图像进行调整大小?

    OpenCV  提供了函数  cv2.resize()  用于调整图像大小。OpenCV中的调整大小被称为  缩放  。我们可以通过指定图像大小或缩放因子来调整图像大小。当我们指定缩放因子时,宽高比会得到保留。 cv2.resize()  函数中有不同的插值方法: cv2.INTER_AREA  —— 用于缩小图像。 cv2.INTER

    2024年02月04日
    浏览(54)
  • Python使用OpenCV库对彩色图像进行通道分离

    目录 1、解释说明: 2、使用示例: 3、注意事项: 在Python中,我们可以使用OpenCV库对彩色图像进行通道分离。通道分离是将彩色图像的每个像素分解为三个通道(红、绿、蓝)的过程。这样,我们可以分别处理和分析每个通道的信息。通道分离在图像处理中有很多应用,例如

    2024年02月12日
    浏览(41)
  • 使用Python和OpenCV进行图像处理和分析

    简介: 图像处理和分析是计算机视觉领域的重要组成部分。本文将介绍如何使用Python编程语言和OpenCV库进行图像处理和分析。我们将涵盖图像读取、显示、滤波、边缘检测和图像分割等常见的图像处理操作,并提供相应的代码示例。 安装OpenCV: 首先,我们需要安装OpenCV库。

    2024年02月12日
    浏览(62)
  • “探索图像处理的奥秘:使用Python和OpenCV进行图像和视频处理“

     1、上传图片移除背景后下载。在线抠图软件_图片去除背景 | remove.bg – remove.bg 2、对下载的图片放大2倍。ClipDrop - Image upscaler  3、对放大后的下载照片进行编辑。  4、使用deepfacelive进行换脸。 1)将第三步的照片复制到指定文件夹。C:myAppdeepfakelivetempDeepFaceLive_NVIDIAuserda

    2024年02月16日
    浏览(96)
  • 使用 OpenCV 和 GrabCut 算法进行交互式背景去除

            我想,任何人都可以尝试从图像中删除背景。当然,有大量可用的软件或工具能够做到这一点,但其中一些可能很昂贵。但是,我知道有人使用窗口绘画3D魔术选择或PowerPoint背景去除来删除背景。         如果您是计算机视觉领域的初学者,这可能适合您。让

    2024年02月15日
    浏览(49)
  • Python图像处理:使用OpenCV对图像进行HSV和RGB表示法的转换

    Python图像处理:使用OpenCV对图像进行HSV和RGB表示法的转换 在图像处理中,我们经常需要使用不同的颜色表示法来处理图像。在OpenCV中,我们可以使用HSV(色相、饱和度、亮度)表示法来替代标准的RGB(红、绿、蓝)表示法来处理图像。HSV表示法更为直观和易于使用,因为它将

    2024年02月06日
    浏览(76)
  • 使用python-opencv对双目摄像头进行立体视觉图像矫正,去畸变

            1、一张棋盘图         可以直接从opencv官方github下载,这是一个拥有10*7个格子的棋盘,共有 9*6个角点,每个格子24mm ,本文所使用的就是这一个棋盘。你需要将它打印在A4纸上用于后续使用。(也可以根据官方教程自行设置棋盘大小OpenCV: Create calibration pattern)

    2024年02月10日
    浏览(50)
  • “Python OpenCV 图像格式转换:RGB与BGR互转“——使用OpenCV库进行图像处理的过程中,经常需要进行不同格式之间的转换。其中最为常见的就是R...

    “Python OpenCV 图像格式转换:RGB与BGR互转”——使用OpenCV库进行图像处理的过程中,经常需要进行不同格式之间的转换。其中最为常见的就是RGB和BGR格式之间的转换。本文将详细介绍如何使用opencv-python库将图像从RGB格式转换为BGR格式以及从BGR格式转换为RGB格式。 要实现图像格

    2024年02月12日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包