I am tracing grabCutNPP in CUDA SDK
(CUDA_SDK_HOME\CUDALibraries\src\grabcutNPP)
I found that in the function “computeSegmentationFromTrimap”, it will compute the EdgeCue in every iteration.
But the input of EdgeCue (edge_strength and d_image) should not be change in this iterative process.
So its output (d_top, d_bottom, d_left_transposed, d_right_transposed, …) should be static, right?
I try to extract the EdgeCue outside the while loop and let it just execute once in whole process, but the result will be strange.
Recomputing EdgeCue
, without recomputing EdgeCue
The reason I can only wonder is that the nppiGraphcut function change the outputs of EdgeCue, but I am not sure.
Can someone tell me where is the problem?
My enviroment:
Win7 SP1
CUDA 4.1
Visual Studio 2010
GT 430
The attachment is the code I’ve modified from original SDK file.
GrabCut.cpp (13.8 KB)