gpuArray/imresize Input array has too many elements
3 次查看(过去 30 天)
显示 更早的评论
I am doing alot of image processing and to speed things up I am using my GPU to help with that
I got an error and I couldn't find help for it anywhere so I decided to ask a question
I made a gpuArray of size 250x250x3x1000 (these are concatenated images so 4D Array) or larger and I tried running imresize on it.
I was following the advice of "Joss Knight" who I have seen answering many questions on GPU related processing and it helped me greatly to speed up my computation.
I was wondering what reason is there that I am getting this error and is there a solution or a workaround for it?
Thank you very much.
Edit:
I just found something.
Dim= cat(4,ImageGroupContainer{ : } ));
So I use cat and when I call size(Dim), I get 273, 273, 3, 1095
and I call numel on it, it gives "244827765"
can't use gpuArray/imresize with it
?
3 个评论
采纳的回答
Joss Knight
2021-1-8
编辑:Joss Knight
2021-1-8
There is a size limitation for gpuArray/imresize of <= 2^27 elements which is only documented in help text.
>> help gpuArray/imresize
imresize Resize image.
B = imresize(A,SCALE)
B = imresize(A,SCALE,METHOD)
B = imresize(A,[NUMROWS NUMCOLS])
B = imresize(A,[NUMROWS NUMCOLS],METHOD)
B = imresize(...,PARAM1,VAL1,PARAM2,VAL2,...)
The input A must have at most 2^27 elements and be non-sparse.
Categorical and indexed images are not supported.
For bicubic interpolation, the output image can have some
values slightly outside the range of pixel values in the input
image.
Sorry about this - the documentation will be updated.
To work around this, simply divide your images up into multiple smaller batches.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!