I need to divide my matlab output figure into pixels or grid of desired dimension.

1 回表示 (過去 30 日間)
h b
h b 2016 年 11 月 21 日
コメント済み: Walter Roberson 2016 年 11 月 22 日
How should it be done. should i save this output figure in another variable?
can "the game of life" coding approach be taken to divide the output figure into pixels.
(also thereafter change colour of the few selected pixels or grid and group them into different categories based on colour and make them move as pointer) i presently dont have image processing toolbox installed Suggest a solution

回答 (2 件)

KSSV
KSSV 2016 年 11 月 21 日
clc; clear all ;
% make random data
data = rand(1000,2) ;
% divide into grid
M = 5 ; N = 5 ;
x = linspace(0,1,M) ;
y = linspace(0,1,N) ;
[X,Y] = meshgrid(x,y) ;
Z = zeros(size(X)) ;
figure
plot(data(:,1),data(:,2),'.r') ;
hold on
plot(X,Y,'k') ; plot(Y,X,'k')
%%Get points inside for each box
P = cell(M,N) ;
for i = 1:N-1
for j = 1:M-1
A = [X(i,j) Y(i,j)] ;
B = [X(i+1,j+1) Y(i+1,j+1)] ;
idx = find(data(:,1) >= A(1) & data(:,1) <B(1)) ;
idy = find(data(:,2) >= A(2) & data(:,2) <B(2)) ;
id = intersect(idx,idy) ;
P{i,j} = [data(id,1) data(id,2)] ;
% plot points inside first box
plot(P{i,j}(:,1),P{i,j}(:,2),'O','color',rand(1,3))
end
end
  2 件のコメント
h b
h b 2016 年 11 月 21 日
{ % make random data
data = rand(1000,2) ;}
Here if i have a previously generated matlab output figure, i want to use this figure. how is it to be done.
KSSV
KSSV 2016 年 11 月 21 日
Won't you have a data? You got only figure?

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


Walter Roberson
Walter Roberson 2016 年 11 月 21 日
Use mat2cell() to divide your image up into pieces.
It is not obvious to me that cellular automata has anything to do with your question.
If you want to move an image on the display, then image() or imshow() it and record the handle returned, and then to move it, change the handle XData and YData properties.
  6 件のコメント
h b
h b 2016 年 11 月 22 日
Shall be grateful if u could also provide a sample code for the abv or a link for reference
Walter Roberson
Walter Roberson 2016 年 11 月 22 日
Example without rotation
cam = imread('cameraman.tif');
subimages = mat2cell(cam, 16 * ones(1, 16), 16 * ones(1,16));
number_of_subimages = numel(subimages);
X = zeros(1, number_of_subimages);
Y = zeros(1, number_of_subimages);
for subidx = 1 : number_of_subimages
imh(subidx) = image( subimages{subidx}, 'XData', X(subidx), 'YData', Y(subidx));
hold on
end
hold off
axis([-100 300 -100 300])
%now move them
for movenum = 1 : 50
for subidx = 1 : number_of_subimages
X(subidx) = X(subidx) + randi([-32,32]);
Y(subidx) = Y(subidx) + randi([-32,32]);
set( imh(subidx), 'XData', X(subidx), 'YData', Y(subidx));
end
pause(1/4);
end

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

カテゴリ

Help Center および File ExchangeLighting, Transparency, and Shading についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by