小编Luc*_*uez的帖子

在matlab中使用FFT去除图像中的图案和噪声

我正在使用clown.jpg图像来摆脱它所带来的明显模式/噪音.

在此输入图像描述

我在对图像进行FFT之前所做的第一步是将其重新调整为2的幂方形图像(即256 x 256).在matlab中使用FFT和fftshift可以在图像中心的强度下进行快速傅立叶变换.下图是使用前面提到的功能的结果.

在此输入图像描述

通过在FFT图像上手动归零"星形",我成功地消除了模式/噪声,如下所示:

在此输入图像描述

采用IFFT,我得到了更好的图像质量(未显示).

我的问题是,是否有一种将"星星"归零的自动方式?由于我们不想删除最明亮的"星形",DC分量和低值,因此我创建了一个将图像归零的区间.这样的阈值如下:

filter = (fLog > .7*max(fLog(:)) ) | (fLog < .25*max(fLog(:)) )

where fLog is the log(1+abs(Fourier image)) and .7 and .25 are the corresponding
interval percentages.
Run Code Online (Sandbox Code Playgroud)

输出掩码(我将乘以傅立叶图像)如下所示.黑色对应于0的值,白色对应于1.请注意,此蒙版的过滤会删除一些"星星"并保留一些直流分量.显然这种方法不是最好的.

在此输入图像描述

我正在阅读关于做高通滤波器的内容,但这似乎删除了傅立叶图像中的所有外部值.这是基于我之前的测试(我没有包括这些图像).

您是否建议突出显示除DC组件之外的高强度值.理想情况下,我想让面具看起来像:

在此输入图像描述

来源:http://users.accesscomm.ca/bostrum/Imaging/tips/tip1.html

在另一个网站中,有人提到使用"高通和水平校正FFT数据只保留代表光栅图案的杂散点".我不清楚如何做到这一点.

来源:http://www.robotplanet.dk/graphics/raster_removal/

对你的帮助表示感谢.

这是我的源代码帮助:

I = imread('clown.jpg'); % Read Image

% convert to grayscale
I = rgb2gray(I);

% normalize the image and conver to doubleI
I = double(mat2gray(I));

% Resize the image
I = imresize(I, [256 256]); …
Run Code Online (Sandbox Code Playgroud)

matlab design-patterns fft image-processing noise

16
推荐指数
1
解决办法
2万
查看次数

R中的时间序列和stl:仅允许单变量序列出错

我正在对一个无组织的文件进行每小时降水分析.但是,我设法清理它并将其存储在一个数据框(称为CA1)中,其形式如下:

  Station_ID Guage_Type   Lat   Long       Date Time_Zone Time_Frame H0 H1 H2 H3 H4 H5        H6        H7        H8        H9       H10       H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23
1    4457700         HI 41.52 124.03 1948-07-01         8        LST  0  0  0  0  0  0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000   0   0   0   0  0  0   0   0   0   0   0   0
2    4457700         HI 41.52 124.03 1948-07-05         8        LST  0  1  1  1  1  1  2.0000000 2.0000000 …
Run Code Online (Sandbox Code Playgroud)

r time-series decomposition

11
推荐指数
1
解决办法
2万
查看次数

将字符转换为R中的数字值

我有一个文件,我读入R并被转换为数据框(称为CA1),具有如下结构:

   Station_ID Guage_Type   Lat   Long     Date Time_Zone Time_Frame H0 H1 H2 H3 H4 H5  H6  H7  H8  H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23
 1    4457700         HI 41.52 124.03 19480701         8        LST  0  0  0  0  0  0   0   0   0   0   0   0 MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS MIS
 2    4457700         HI 41.52 124.03 19480705         8        LST  0  1  1  1  1  1   2   2 …
Run Code Online (Sandbox Code Playgroud)

casting r dataframe

6
推荐指数
2
解决办法
1万
查看次数

将每日数据平均化为每周数据

我想知道是否有办法将每日数据平均为每周数据。我称之为 CADaily 的数据框如下所示:

      > CADaily[1:10, ]
          Climate_Division       Date      Rain
      885                1 1948-07-01 0.8750000
      892                1 1948-07-02 2.9166667
      894                1 1948-07-03 0.7916667
      895                1 1948-07-04 0.4305556
      898                1 1948-07-05 0.8262061
      901                1 1948-07-06 0.5972222
      904                1 1948-07-17 0.04166667
      905                1 1948-07-18 0.08333333
      907                1 1948-07-20 0.04166667
      909                1 1948-07-22 0.12500000
      910                1 1948-07-21 NA
Run Code Online (Sandbox Code Playgroud)

我的目标类似于聚合函数,根据日期(当然)和 Climate_Division(范围从 1 到 7)找到每日降雨量到每周降雨值的平均值。我在网上搜索,发现了一个我可以使用但不太符合我的目标的代码:

      apply.weekly(xts(CADaily[,-2], order.by= CADaily[,2]), FUN = mean)
Run Code Online (Sandbox Code Playgroud)

这就是我想要的,但是我的专栏 Climate_Division 也是平均的。我只想平均降雨量,并根据 Climate_Division 和日期进行排序。有没有一种方法可以让我做到如下:

      aggregate(CADaily, by =list(CADaily$Climate_Division, CADaily$Date), FUN = mean, na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)

其中 …

r dayofweek

5
推荐指数
1
解决办法
1万
查看次数

将m个数据帧转换为R中的1乘n*m数据帧

我有一个我称之为'd'的数据帧,其格式如下:

        Date   Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct   Nov  Dec
        1 1895 12.63 2.47 2.69 2.43 3.10 1.65 0.13 0.24 1.78 0.18  3.32 7.78
        2 1896 13.08 3.86 5.14 5.91 1.61 0.10 0.00 0.05 0.44 3.76  9.51 8.71
        3 1897  4.10 7.16 6.38 0.85 0.47 0.87 0.00 0.00 0.46 2.51  5.27 3.40
        4 1898  1.97 6.14 0.29 0.30 2.40 0.49 0.00 0.00 1.10 1.32  2.40 2.11
        5 1899  7.61 2.69 8.12 1.56 1.66 0.75 0.00 0.18 …
Run Code Online (Sandbox Code Playgroud)

transpose r dataframe

3
推荐指数
1
解决办法
77
查看次数

在Matlab中为KNN选择k

我目前正在使用Matlab的k最近邻分类器(knnclassify)来训练和测试二进制属性.如果没有提供k,则k的默认值参数为1,并且可以选择k的其他值.我已经完成了在线研究和stackoverflow研究,但是没有任何相关内容可以解决我的问题,即k的最佳用途是什么.是否有内置函数可以告诉我对于我的特定数据,还是只是猜测并等待看到的精度是什么?任何帮助将不胜感激.

以下是matlab的knnclassify文档的链接:knnclassify

matlab classification knn

2
推荐指数
1
解决办法
2419
查看次数