GPUOpen-ProfessionalCompute-Libraries / amdovx-core

AMD OpenVX Core -- a sub-module of amdovx-modules:
https://github.com/GPUOpen-ProfessionalCompute-Libraries/amdovx-modules
MIT License
149 stars 53 forks source link

Dilation node on GDF file #9

Closed bnascimento closed 7 years ago

bnascimento commented 8 years ago

Im trying to write a dilation node using the opencv extended nodes lib. For that I need to specify a kernel matrix.

compute dilation

data kernelMatrix = matrix:UINT8,3,3:INIT,0;1;0;1;1;1;0;1;0 data anchorX = scalar:INT32,1 data anchorY = scalar:INT32,1 data iter = scalar:INT32,3 data border = scalar:INT32,4 node org.opencv.dilate not dilation kernelMatrix anchorX anchorY iter border

Gives me the error: E:\Projects\SignsFramework\x64\Release>runvx.exe vx_ext_cv.gdf runvx.exe 0.9.2 OK: using AMD OpenVX 0.9.2 OK: loaded 55 kernels from vx_ext_cv.dll init done opengl support available ERROR: matrix creation failed => -12 (VX_ERROR_INVALID_REFERENCE)

Probably a syntax error: but how can it be fixed? Cheers, Bruno

bnascimento commented 8 years ago

Changing the kernelMatrix to:

data kernelMatrix = matrix:INT32,3,3:INIT,{0;1;0;1;1;1;0;1;0}

leads to...

runvx.exe 0.9.2 OK: using AMD OpenVX 0.9.2 OK: loaded 55 kernels from vx_ext_cv.dll init done opengl support available csv,HEADER ,STATUS, COUNT,cur-ms,avg-ms,min-ms,clenqueue-ms,clwait-ms,clwrite-ms,clread-ms OK: capturing 768x576 image(s) into 768x576 RGB image buffer OpenCV Error: Assertion failed (_kernel.type() == CV_8U) in cv::MorphFilter<struct cv::MaxOp,struct cv::MorphIVec >::MorphFilter, file D:\Desktop\Jira\2016.08.31_CreateOpenCVWin64StaticBuild\opencv\modules\imgproc\src\morph.cpp, line 791

while using

data kernelMatrix = matrix:UINT8,3,3:INIT,{0;1;0;1;1;1;0;1;0}

leads to...

E:\Projects\SignsFramework\x64\Release>runvx.exe vx_ext_cv.gdf runvx.exe 0.9.2 OK: using AMD OpenVX 0.9.2 OK: loaded 55 kernels from vx_ext_cv.dll init done opengl support available ERROR: matrix creation failed => -12 (VX_ERROR_INVALID_REFERENCE)

Any hints?

gshisha commented 8 years ago

Error seems to be coming from within OpenCV. Alternately, would the "dilate" module in OpenVX work for your use case? https://www.khronos.org/registry/vx/specs/1.0.1/html/dc/d73/group__group__vision__function__dilate__image.html

rgiduthuri commented 8 years ago

Hi Bruno, were you able get this working?

bnascimento commented 8 years ago

Hi, no I used the module you pointed me out. The one inside OpenVX.

rgiduthuri commented 8 years ago

Please send the complete gdf with matrix created using INT32 type, so that we can repro the problem.

kiritigowda commented 8 years ago

Hi Bruno,

here is a simple test case which works. You can extend it to your use case.

data input = image:1280,720,U008:READ,yourImage.y data output = image:1280,720,U008:WRITE,yourOutputImage.y data Kernel = matrix:INT32,1,1:INIT,{0} data anchorX = scalar:INT32,-1 data anchorY = scalar:INT32,-1 data ITER = scalar:INT32,2 data BORDER = scalar:INT32,4 node org.opencv.dilate input output Kernel anchorX anchorY ITER BORDER