Objective c 接缝雕刻–;访问cocoa中的像素数据
我想用Avidan/Shamir实现接缝雕刻算法。在能量计算阶段(可以使用核心图像过滤器实现)之后,我需要计算能量最低的接缝,这不能作为核心图像过滤器实现,因为它使用动态编程(并且您无法访问opengl着色语言中以前的计算) 因此,我需要一种在objective-c中高效访问图像像素数据的方法 省略边界检查的伪代码:Objective c 接缝雕刻–;访问cocoa中的像素数据,objective-c,cocoa,image-processing,core-image,Objective C,Cocoa,Image Processing,Core Image,我想用Avidan/Shamir实现接缝雕刻算法。在能量计算阶段(可以使用核心图像过滤器实现)之后,我需要计算能量最低的接缝,这不能作为核心图像过滤器实现,因为它使用动态编程(并且您无法访问opengl着色语言中以前的计算) 因此,我需要一种在objective-c中高效访问图像像素数据的方法 省略边界检查的伪代码: for y in 0..lines(image) do: for x in 0..columns(image) do: output[x][y] = value(ima
for y in 0..lines(image) do:
for x in 0..columns(image) do:
output[x][y] = value(image, x, y) +
min{ output[x-1][y-1]; output[x][y-1]; output[x+1][y-1] }
获取图像像素值的最佳方法是使用创建CGBitmapContextRef。其中重要的一点是,当您创建上下文时,您可以将指针传入其中,该指针将用作位图数据的备份存储。这意味着数据将保存像素值,您可以随时使用它们 因此,这些步骤应该是:
你是如何计算能量数据的?你的算法是什么?这不会利用GPU,对吧?如果我正确理解了算法,那么这必须通过图像中的行数(很容易达到1024+次)来完成。对,最初的问题是关于访问要运行c代码的图像数据,因此答案显示了如何将图像数据转换为堆上定义良好的格式。