필터 지우기
필터 지우기

neighbour pixel operation

조회 수: 3 (최근 30일)
javeed miyandad
javeed miyandad 2011년 4월 10일
sir i have a white and black(BW) (binary)image of size (i X j).i need image to be scanned from left to right, up and down and the scan area is 3X3.if one of 8-neighbour pixel is white (255).then center point should becomes white (255). sir please help in coding
sir i am able to divide image into blocks of size 3X3
BW=imagen;
BW2 = zeros(3 * ceil(size(BW)/3));
BW2(1:size(BW,1),1:size(BW,2)) = BW;
BW = BW2;
r = mat2cell(BW, 3 * ones(1,size(BW,1)/3), 3 * ones(1,size(BW,2)/3));
then i am trying with B(2,2) = max(r(2,2),255 * any(r(:)==255)); %for (2 2)block
but i am geting error
??? Function 'eq' is not defined for values of class 'cell'.
Error in ==> eq at 18 [varargout{1:nargout}] = builtin('eq', varargin{:});
sir please help in coading

채택된 답변

Oleg Komarov
Oleg Komarov 2011년 4월 10일
Why did you group in cells in thr first place?
Referencing the content of a cell should be done with curly brackets:
r{1,1}
  댓글 수: 4
javeed miyandad
javeed miyandad 2011년 4월 10일
sorry sir i am not geting
plz can u give another code
Oleg Komarov
Oleg Komarov 2011년 4월 10일
B{2,2} = max(r{2,2}, 255*cellfun(@(x) any(x == 255),x));

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by