Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R进行简单的图像/模式识别任务?_R_Image Processing_Plot_Ocr - Fatal编程技术网

使用R进行简单的图像/模式识别任务?

使用R进行简单的图像/模式识别任务?,r,image-processing,plot,ocr,R,Image Processing,Plot,Ocr,我有一张有很多点的图像,我想从中提取每个点的x-y位置 我已经知道如何手动执行此操作(有一个用于执行此操作的软件包) 然而,是否有某种自动完成的方法 (我的下一个问题是——当有多条线的图像时,是否有一种方法可以检测这些线在哪里相交/“相互接触”) 由于注释中的请求,下面是一个要“解决”的图像示例(即:提取图像的数据点位置) 谢谢,塔尔 (注:由于我不熟悉该领域,如果我使用了错误的术语或问了太简单或太复杂的问题,我很抱歉。这是吗?任务视图涵盖了一般图像验证,这可能是一个开始。在Dirk之后跟进,是

我有一张有很多点的图像,我想从中提取每个点的x-y位置

我已经知道如何手动执行此操作(有一个用于执行此操作的软件包)

然而,是否有某种自动完成的方法

(我的下一个问题是——当有多条线的图像时,是否有一种方法可以检测这些线在哪里相交/“相互接触”)

由于注释中的请求,下面是一个要“解决”的图像示例(即:提取图像的数据点位置)

谢谢,塔尔


(注:由于我不熟悉该领域,如果我使用了错误的术语或问了太简单或太复杂的问题,我很抱歉。这是吗?

任务视图涵盖了一般图像验证,这可能是一个开始。

在Dirk之后跟进,是的,检查医疗成像任务视图。再看看Rforge, Romain Francois有一个RJImage软件包,最近注册了另一个图像处理软件包。你要找的是分割算法。点的问题比线的问题容易得多。第一个可以通过RGB或灰度过滤器完成,只需进行某种半径搜索。检测线性特征比较困难。提取特征后,可以使用扫描线算法检测交点。EBIMAGE可以具有用于检测渐晕图中的单元的示例


Nicholas

我认为可以使用package
raster
从具有特定值的图像中提取xy坐标。看一看套餐的小插曲

编辑

你能试试这个,告诉我它是否在你要找的东西的范围内吗? 我希望带有注释的代码是非常自解释的。期待你的回答

library(raster)
rst <- raster(nrows = 100, ncols = 100) #create a 100x100 raster
rst[] <- round(runif(ncell(rst))) #populate raster with values, for simplicity we round them to 0 and 1
par(mfrow=c(1,2))
plot(rst) #see what you've got so far
rst.vals <- getValues(rst) #extract values from rst object
rst.cell.vals <- which(rst.vals == 1) #see which cells are 1
coords <- xyFromCell(rst, rst.cell.vals) #get coordinates of ones
rst[rst.cell.vals] <- NA #set those raster cells that are 1 to NA (you can play with rst[!rst.cell.vals] <- NA to exclude all others)
plot(rst) #a diag plot, should have only one color
库(光栅)

你为什么对这张照片这么保密?你能创建一个公平的复制品,这样我们就可以把手弄脏吗?=)否则,我所能做的(我也不能做太多,因为德克已经说过了)就是把你们指向特定的包。您仍然倾向于使用R作为“通用”编程语言。我认为C更适合解决这些问题…等一下。。。是否要从“纸笔”问卷导入数据?线的交点指的是X标记?你好,aL3xa,我提出的问题在不同的地方出现了。每次我“用手”解决它时,我想看看是否能找到一个更一般的解决方案(使用R)。顺便说一句,有趣的是你在取笑我关于“R是一种通用语言”的问题,而不久前我如此明确地问到了这是不是真的——这里的人把我的问题投票给了-5:笨蛋!好吧,我不会再做了!=)但另一方面,我强烈推荐C,因为它具有强大的图形功能。我看到你贴了一个例子。。。我会看看我能做些什么,在那之前,我想你只剩下
识别
=(谢谢你。)。关于识别-看“图书馆(数字化)”干杯,塔尔希·尼古拉斯,非常感谢您的详细回复!由于对该问题的评论,我添加了一个示例图像以尝试“解决”。如果你能解决第一个例子,它将是最有用的。再次感谢塔尔希·罗姆诺夫,谢谢你的链接。我浏览了一些小插曲,找不到你在说什么。你指的是哪一页?基本上,您可以操纵光栅,将所有不需要的值设置为NA,并为光栅上的其余值提取xy。我的项目就是这样做的,但可能还有一种更优雅的方式我还不熟悉。我承认,光栅软件包需要一段时间才能适应它,并感受到它的全部威力。@RomanLuštrik我正在努力解决这个问题。是否有可能提供任何投入?到目前为止,我正在使用R光栅包获取图像,然后使用getValues函数。我需要关于如何检测图像中的线条的指导原则……您似乎对光栅软件包有很好的理解,并希望得到您的反馈。@user2543622检测光栅图像中的线条不是一件小事。我在想计算机视觉——用足够多的图像训练程序,并使用其中一个库(或Python,在这方面有很好的介绍)来推断给定的时间。
library(raster)
rst <- raster(nrows = 100, ncols = 100) #create a 100x100 raster
rst[] <- round(runif(ncell(rst))) #populate raster with values, for simplicity we round them to 0 and 1
par(mfrow=c(1,2))
plot(rst) #see what you've got so far
rst.vals <- getValues(rst) #extract values from rst object
rst.cell.vals <- which(rst.vals == 1) #see which cells are 1
coords <- xyFromCell(rst, rst.cell.vals) #get coordinates of ones
rst[rst.cell.vals] <- NA #set those raster cells that are 1 to NA (you can play with rst[!rst.cell.vals] <- NA to exclude all others)
plot(rst) #a diag plot, should have only one color