Convert a wave image to x-y function matlab
function [x,y]=imwtoxy(signal,V,T,px)
%This function can be used to convert an image of a wave captured
%from an oscilloscope to its x-y representation Which may be used to find
%the mathematical properties of the wave by matlab functions.
%--------------------------------------------------------------------------
% Simples code of the function:
% Signal = image names with its kind .... example 'wave.jpg'
% V = Volt per div in the oscilloscope panel
% T = second per div in the oscilloscope panel
% px = Number of pixel per centimeters in the oscilloscope grid image
% x = Time vector of the result AC voltage wave
% y = Alternating amplitude vector of the result AC voltage wave
%--------------------------------------------------------------------------
% step 1: Read wave image and convert it to sharp bright one
xim=imread(signal);
x1=xim(:,:,1);
x2=im2bw(x1);
x3=bwmorph(x2,'skel',inf);
%--------------------------------------------------------------------------
% step 2: Find the coordinates of the two edges of the wave image in its
% matrix representation (pixel representation)
n=size(x1);
m=1;
for j=1:1:n(2)
c=0;
for i=1:1:n(1)
if x3(i,j)==1
c=c+1;
k=i;
end
end
if c~=0
y1(m)=c-k;
y2(m)=-k;
x(m)=j;
m=m+1;
end
end
y1=y1-min(y1);
y2=y2-min(y2);
x=x-min(x);
%--------------------------------------------------------------------------
%step 3 :Convert waves axis scale from pixel to centimeters and split
%y1 and y2 into positive and negative part
y1=y1/px;
y2=y2/px;
y1=y1-max(y1)/2;
y2=y2-max(y2)/2;
x=x/px;
%--------------------------------------------------------------------------
%step 4 :Convert waves axis scale from centimeters to volt and second
y1=y1*V;
y2=y2*V;
x=x*T;
%--------------------------------------------------------------------------
%step 5 :Find the middle point y between y1 and y2
dy=y1-y2;
y=y1-dy/2;
%--------------------------------------------------------------------------
%step 6 : Find smooth representation of y axis
y=smooth(x,y,0.01,'rloess');
y=y';
%--------------------------------------------------------------------------
%step 7 : plotting the result wave with its image
subplot 211;imshow(x1);xlabel('Sine wave captured from an oscilloscope')
subplot 212;p=plot(x,y);grid on
xlabel('Time (sec)'); ylabel('wave Amplitude(volt)');
set(p,'Color','red','LineWidth',2)
end
%--------------------------------------------------------------------------
%The function tested with sine wave image of size 5M pixel captured by
%digital camera from analoge oscilloscope with
%V=50/1000 volt/div and T=0.5/1000 second/div.
%The size 5M pixel produce px=178 pixel/div.
%A.Y.Iwyead , Sep 29, 2011
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java/PDF에서 이미지 바꾸기우리 모두 알다시피 PDF는 편집하기 어려운 일종의 문서 형식입니다. 그러나 다른 사람으로부터 PDF 문서를 받을 때 문서의 이미지를 새 이미지로 바꾸는 등 약간의 수정이 필요할 수 있습니다. 이 문서에서는 Java...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.