フィルターのクリア

A grouping vector numbers

1 回表示 (過去 30 日間)
Biza Ferreira
Biza Ferreira 2014 年 6 月 19 日
コメント済み: dpb 2014 年 6 月 19 日
Hello friends I have one matrix and I need assemble all entries of a matriz in one single vector. This I've done. But I need i need extract repeated values of this and put them in new one. For this I need construct a histogram, and verify which values who not equal to zero and increment a count. So if I find a value not equal to zero I have to increment +1 to value (color) in the histogram position. with intervals100 or 200 to perform small increment in the same "color" (value) on vector
A=[1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0]
v = reshape( A.' ,1,numel(A));

回答 (2 件)

dpb
dpb 2014 年 6 月 19 日
I can't really parse the request but on an off chance it'll help...
BTW, the shortcut for reshape(x,1,[]) is
v=A(:); % this works for all array sizes to generate a column vector
Anyway, as said, taking a guess on the question...
n=histc(v,unique(v));

Biza Ferreira
Biza Ferreira 2014 年 6 月 19 日
if true
% code
clc;
clear all;
close all;
im1=imread('imagem60.tif'); im2=imread('imagem70.tif'); imshow(im1);
im1=imresize(imfilter(im1,fspecial('gaussian',7,1.),'same','replicate'),0.5,'bicubic'); im2=imresize(imfilter(im2,fspecial('gaussian',7,1.),'same','replicate'),0.5,'bicubic');
im1=im2double(im1); im2=im2double(im2);
figure,imshow(im1),title('1?imagem original'); figure,imshow(im2);title('2?imagem original'); figure,imhist(im1),title('Histograma de im1'); figure,imhist(im2),title('Histograma de im2');
patchsize=8; gridspacing=1;
Sift1=dense_sift(im1,patchsize,gridspacing); Sift2=dense_sift(im2,patchsize,gridspacing);
% figure,imshow(showColorSIFT(Sift1)); % figure,imshow(showColorSIFT(Sift2));
SIFTflowpara.alpha=2; SIFTflowpara.d=40; SIFTflowpara.gamma=0.005; SIFTflowpara.nlevels=4; SIFTflowpara.wsize=5; SIFTflowpara.topwsize=20; SIFTflowpara.nIterations=60;
tic;[vx,vy,energylist]=SIFTflowc2f(Sift1,Sift2,SIFTflowpara);toc
Im1=im1(patchsize/2:end-patchsize/2+1,patchsize/2:end-patchsize/2+1,:); Im2=im2(patchsize/2:end-patchsize/2+1,patchsize/2:end-patchsize/2+1,:); warpI2=warpImage(Im2,vx,vy); figure,imshow(Im1), title('imagem Im1'); figure,imshow(warpI2),title('warpImage Im2');
% display flow clear flow; flow(:,:,1)=vx; flow(:,:,2)=vy; figure,imshow(flowToColor(flow)),title('diferenca entre as duas imagens');
dstPath='output/';
Amp=sqrt((vx).^2+(vy).^2); figure,imshow(Amp,[]);
direction=atan(vy./vx); figure,imshow(direction,[]);
a=hist(direction,50) end
I just need read this direction variable and verify all values different zero, and when the value repeat i increment 1 more in value scale. exemple: A=[1 1 1 1 1 1 1; 2 2 2 2 2 2 0]; in histogram the value 1 repeat seven time so the amplitude should be 7 for the value 1, for value 2 should be 6, to 0 1 ...
  1 件のコメント
dpb
dpb 2014 年 6 月 19 日
Did you not try the previous response???? That's precisely what it returns.

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

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by