R 如何突出显示图像的特定部分?
我正在尝试用R处理一张组织图像,我已经能够用黑色突出显示某些细胞,其余的背景是白色。我的问题与此非常相似(作为一名新手,我无法发布图片) 只是我需要知道这在R中是如何实现的。我已经尝试了很多函数,搜索了很多技术,但还没有结果。这是代码和原始图像R 如何突出显示图像的特定部分?,r,image-processing,R,Image Processing,我正在尝试用R处理一张组织图像,我已经能够用黑色突出显示某些细胞,其余的背景是白色。我的问题与此非常相似(作为一名新手,我无法发布图片) 只是我需要知道这在R中是如何实现的。我已经尝试了很多函数,搜索了很多技术,但还没有结果。这是代码和原始图像 img<-readJPEG("img.jpg") img<-array(img,c(480,640,3)) imgDm <- dim(img) imgRGB <- data.frame( x = rep(1:imgD
img<-readJPEG("img.jpg")
img<-array(img,c(480,640,3))
imgDm <- dim(img)
imgRGB <- data.frame(
x = rep(1:imgDm[2], each = imgDm[1]),
y = rep(imgDm[1]:1, imgDm[2]),
R = as.vector(img[,,1]),
G = as.vector(img[,,2]),
B = as.vector(img[,,3])
)
library(ggplot2)
plotTheme <- function() {
theme(
panel.background = element_rect(
size = 3,
colour = "black",
fill = "white"),
axis.ticks = element_line(
size = 2),
panel.grid.major = element_line(
colour = "gray80",
linetype = "dotted"),
panel.grid.minor = element_line(
colour = "gray90",
linetype = "dashed"),
axis.title.x = element_text(
size = rel(1.2),
face = "bold"),
axis.title.y = element_text(
size = rel(1.2),
face = "bold"),
plot.title = element_text(
size = 20,
face = "bold",
vjust = 1.5)
)
}
ggplot(data = imgRGB, aes(x = x, y = y)) + geom_point(colour = rgb(imgRGB[c("R", "G", "B")])) +labs(title = "Original Image: Tissue") +xlab("x") +ylab("y") +plotTheme()
kClusters <- 3
kMeans <- kmeans(imgRGB[, c("R", "G", "B")], centers = kClusters)
kColours <- rgb(kMeans$centers[kMeans$cluster,])
kColours[kColours=="#8B8B8B"]<-"#1874CD"
kColours[kColours=="#565656"]<-"#FFFFFF"
kColours[kColours=="#CCCCCC"]<-"#FFFFFF"
ggplot(data = imgRGB, aes(x = x, y = y)) + geom_point(colour = kColours) +labs(title = paste("k-Means Clustering of", kClusters, "Colours")) +xlab("x") +ylab("y") + plotTheme()
img请共享一些代码和一个可复制的示例。请查找上面的编辑,然后告诉我您是否还需要其他内容,或者将数据导入光栅(请参阅packageraster
)。你将能够根据坐标绘制形状。谢谢你的建议。就我所知,关于如何获得黑色像素的特定坐标,你有什么想法吗,您的图像中没有白色或黑色像素?请共享一些代码和一个可复制的示例。请查找上面的编辑,然后告诉我您是否还需要其他内容,或者将数据导入光栅(请参阅packageraster
)。您将能够根据坐标绘制形状。谢谢您的建议。关于如何获得黑色像素的特定坐标,您有何想法?据我所知,您的图像中没有白色或黑色像素?