我正在使用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) 我正在对一个无组织的文件进行每小时降水分析.但是,我设法清理它并将其存储在一个数据框(称为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并被转换为数据框(称为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) 我想知道是否有办法将每日数据平均为每周数据。我称之为 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)
其中 …
我有一个我称之为'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) 我目前正在使用Matlab的k最近邻分类器(knnclassify)来训练和测试二进制属性.如果没有提供k,则k的默认值参数为1,并且可以选择k的其他值.我已经完成了在线研究和stackoverflow研究,但是没有任何相关内容可以解决我的问题,即k的最佳用途是什么.是否有内置函数可以告诉我对于我的特定数据,还是只是猜测并等待看到的精度是什么?任何帮助将不胜感激.
以下是matlab的knnclassify文档的链接:knnclassify