• halcon傅里叶变换


    傅里叶变换是空域到频域的变换方法

    用途:一般用于对出现频率高的像素点的分析以及噪声的去除

    频率图特点:图像中心是频率为0的原点,由内到外频率越来越高; 期中颜色变换激烈的地方对应高频成分,如边缘;颜色变换不大的地方对应低频

    1.jpg

    在HDevelop中

    dev_update_off()
    read_image(Image,'D:/bb/tu/1.jpg')
    
    rgb1_to_gray(Image,Image1)
    
    fft_image (Image1, ImageFFT)
    *傅里叶变换
    *参数2:傅里叶变换图像
    get_image_size (ImageFFT, Width, Height)
    
    dev_open_window(0,100,Width, Height,'black',WindowHandle)
    dev_display(ImageFFT)
    
    ********傅里叶变换图像的应用*********
    area_center (ImageFFT, Area, Row, Column)
    gen_circle (Circle, Row, Column, 20)
    
    paint_region (Circle, ImageFFT, ImageResult, 0, 'fill')
    *参数4用0填充,目的就是屏蔽掉一些低频
    
    fft_image_inv (ImageResult, ImageFFTInv)
    *傅里叶逆变换
    *参数1:输入图像
    *参数2:保存变换后的图像
    
    
    get_image_size (ImageFFTInv, Width1, Height1)
    dev_open_window(0,100,Width1, Height1,'black',WindowHandle1)
    dev_display(ImageFFTInv)
    
    *说明:通过逆变换后的图像可以看到,一些低频图像(背景)被去掉了


    在Qt Creator中

        HObject  ho_Image, ho_Image1, ho_ImageFFT, ho_Circle;
        HObject  ho_ImageResult, ho_ImageFFTInv;
        HTuple  hv_Width, hv_Height, hv_WindowHandle;
        HTuple  hv_Area, hv_Row, hv_Column, hv_Width1, hv_Height1;
        HTuple  hv_WindowHandle1;
        ReadImage(&ho_Image, "D:/bb/tu/1.jpg");
    
        Rgb1ToGray(ho_Image, &ho_Image1);
    
        FftImage(ho_Image1, &ho_ImageFFT);
        //傅里叶变换
        //参数2:傅里叶变换图像
        GetImageSize(ho_ImageFFT, &hv_Width, &hv_Height);
    
        SetWindowAttr("background_color","black");
        OpenWindow(0,100,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
        HDevWindowStack::Push(hv_WindowHandle);
        if (HDevWindowStack::IsOpen())
          DispObj(ho_ImageFFT, HDevWindowStack::GetActive());
    
        //*******傅里叶变换图像的应用*********
        AreaCenter(ho_ImageFFT, &hv_Area, &hv_Row, &hv_Column);
        GenCircle(&ho_Circle, hv_Row, hv_Column, 20);
    
        PaintRegion(ho_Circle, ho_ImageFFT, &ho_ImageResult, 0, "fill");
        //参数4用0填充,目的就是屏蔽掉一些低频
    
        FftImageInv(ho_ImageResult, &ho_ImageFFTInv);
        //傅里叶逆变换
        //参数1:输入图像
        //参数2:保存变换后的图像
    
    
        GetImageSize(ho_ImageFFTInv, &hv_Width1, &hv_Height1);
        SetWindowAttr("background_color","black");
        OpenWindow(0,100,hv_Width1,hv_Height1,0,"visible","",&hv_WindowHandle1);
        HDevWindowStack::Push(hv_WindowHandle1);
        if (HDevWindowStack::IsOpen())
          DispObj(ho_ImageFFTInv, HDevWindowStack::GetActive());
    
        //说明:通过逆变换后的图像可以看到,一些低频图像(背景)被去掉了

  • 相关阅读:
    mongo常用查询
    MongoDB
    python连接mongo
    linux 硬盘
    kali 日志
    linux 命令
    grep
    linux shell
    linux 匹配字符串是否为数字
    linux 第一题 计算题
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15947738.html
Copyright © 2020-2023  润新知