Using a user defined fucntion with blockproc

5 ビュー (過去 30 日間)
Jason
Jason 2015 年 1 月 15 日
コメント済み: Jason 2015 年 1 月 15 日
Is there a mistake in my syntax using blocproc:
Binary1=blockproc(OrigImage,[tileRowSize, tileColSize],@(x) myOperation(hObject, eventdata, handles, x.data));
the function I use "myOperation" is as follows:
function myOperation(hObject, eventdata, handles,tile)
[thresh1, thresh2] = Threshold(hObject, eventdata, handles,tile); %my personal thresholding function
%Create Binary Image
size(tile)
ix=tile;
level=thresh2
ix(ix<level)=0;
ix(ix>level+1)=1;
Im getting
Binary1 =
[]

回答 (2 件)

Image Analyst
Image Analyst 2015 年 1 月 15 日
I don't have time to look at it now, but in the meantime, see my blockproc demos, attached.

Iain
Iain 2015 年 1 月 15 日
What does your "myfunction" function output? It looks like it's not producing any output.
  4 件のコメント
Image Analyst
Image Analyst 2015 年 1 月 15 日
If you have blocks of 25 pixels by 25 pixels, and you move in "jumps" of 25 pixels, then I believe your last block will have only 1 row or column. Thus it may not have a value like the others that had a full block in them.
Jason
Jason 2015 年 1 月 15 日
Yes that makes sense.
Is it possible to return also the mean intensity of each sub image using blockproc, I thought I could just add an extra output variable from my function such as:
function [BI, mn] = myOperation(hObject, eventdata, handles,tile)
mn=mean(tile)
%then the rest of the code.
and then obtain a matrix of mean values via:
[Binary1, mn]=blockproc(OrigImage,[tileRowSize, tileColSize],@(x) myOperation(hObject, eventdata, handles, x.data));
But it complains about too many output arguments for Blockproc.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by