我想通过Avidan / Shamir实现接缝雕刻算法。在能够使用核心图像滤波器实现的能量计算阶段之后,我需要计算具有最低能量的接缝,这些接缝无法实现为核心图像过滤器,因为它使用动态编程(并且您无法访问以前的opengl着色语言计算。)
所以我需要一种方法来在objective-c cocoa中有效地访问图像的像素数据。
伪代码省略边界检查:
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] }
答案 0 :(得分:3)
访问图像像素值的最佳方法是使用CGBitmapContextCreate创建CGBitmapContextRef。关于这一点的重要部分是,当您创建上下文时,您可以传入指针,该指针将用作位图数据的后备存储。这意味着数据将保存像素值,您可以随心所欲地使用它们。
所以步骤应该是: