我正在处理一些工业零件的热温度数据。我有一个带有温度值的零件的像素级温度。我想使用dbscan
来识别每个部分中都有像素簇的部分,其中簇中的所有点都超过阈值温度。我尝试使用dbscan
,但不知道如何使用阈值温度和群集大小作为条件来进行识别。
我尝试仅隔离超过阈值(230)的点,并尝试查看该簇是否超过一定大小。以下代码:c(1,3)
是温度的x
,y
值,v
是温度。
new<-sub%>%filter(sub$v>230)%>% as.data.frame(.)
db <- fpc::dbscan(new[,c(1,3)], eps =3, MinPts = 10)
plot(db, new[,c(1,3)], main = "DBSCAN", frame = FALSE)
完整的零件外观:
使用阈值温度过滤后的 dbscan
输出”:
答案 0 :(得分:1)
请勿使用fpc
软件包。请改用dbscan
!
我不确定DBSCAN是否适合您的taskz,因为下面您将讨论10x10区域。为此,标准的 convolution 会更合适...
但是,除了DBSCAN可以为您工作之外,只要您选择适当的属性(n,m,f,c?这些是什么?)和参数(半径分钟)即可。也许您的epsilon太小了?