Skip to content

(*.249.97.68) 조회 수 5579 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
2년전에 처음으로 웹캠 사진을 찍은후 영상처리가 문제였습니다. 적절한 프로그램을 사기에는 돈이 아깝고 해서 그당시부터 MATLAB 프로그램을 자주 이용해왔습니다. 영상을 더한다던가하는 간단한 영상처리는MATLAB 에서 하면 편리합니다. 요즘에는 MAXIM 등의 프로그램이 있어서 프로그램을 짤필요는 없지만, 자기만의 특별한 영상처리를 하려면 MATLAB 을 활용하는 것이 가장 시간이 적게 걸리는 방법이겠죠. 저의경우 photoshop 에서는 16-비트 더하기가 안되서 더하기 과정만 MATLAB을 이용했습니다. 버그가 좀 있을지도 모르지만 아직까지는 잘 쓰고 있습니다. 행성사진의 합성에는 사용할 수 없지만, 별사진의 경우에는 사용할 수 있습니다.


프로그램 설명입니다.

입력화일의 형식은 *.tif 의 16 비트 흑백영상 TIF 화일입니다. (칼라는 안됩니다. 각채널별로 사용하시면 되겠습니다.)
더하려는 화일의 이름은 ORION_1,ORION_2 ...,ORION_8 처럼 뒤에 _N 형식으로 일련번호가 붙어 있어야 됩니다.
입력할때는 ORION 이라고 입력하시면 되고, 시작번호 부터 끝번호까지 더합니다.(중간에 빠진 번호가 있으면 안됩니다.)

시작번호에 대응하는 영상이 기준영상이 되고, offset 값은 이영상으로 부터 다른영상이 + 또는 - 로 최대 얼마나 벗어나 있는가를 나타냅니다(pixel 단위입니다.). 이값이 커지면 프로그램 실행시간이 길어집니다.(프로그램을 무식하게 짰기때문이죠^^)

reference point 의 수는 사진을 정렬할 때 사용되는 별의 갯수 입니다. 보통 3으로 하시면 됩니다.

Background 는 dark frame 에 해당하는 file 이름을 넣어줍니다. 그러면 매 영상마다 이영상을 빼고 align 한후 더하게 됩니다.

프로그램은 다음과 같습니다. MATLAB에서도 영상처리를 할 수 있다는 예제 프로그램이라는 의미로 올려봅니다.
점선아래만 복사해서 *.m file로 저장후 사용하시면 되겠습니다.

< copy free 며 자유롭게 사용하세요. 대신 이 프로그램으로 인한 어떠한 문제도 책임질 수 없습니다.>
-------------------------------------------------------------------

filename=input('Input the file name=','s');
StartImage=input('Number of Start image=');
EndImage=input('Number of End image=');
NoOfRefPt=input('Number of Reference Points=');
NoOfImage=EndImage-StartImage+1;
MaxOffset_x=input('Max Row Offset =');
MaxOffset_y=input('Max Column Offset =');

Backfilename=input('Back Ground file name=','s');
filename1=strcat(filename,'_');
filename2=strcat(filename1,num2str(StartImage));

ref_image=double(imread(strcat(filename2,'.tif'),'tiff'));
back_image=double(imread(strcat(Backfilename,'.tif'),'tiff'));

minval=min(min(back_image));
back_image=back_image-minval;

ref_image=ref_image-back_image;

[X_size,Y_size]=size(ref_image);

ImageSum=ref_image;

ImageSum(1:MaxOffset_x+50,:,:)=0;
ImageSum(X_size-MaxOffset_x-50:X_size,:)=0;
ImageSum(:,1:MaxOffset_y+50,:)=0;
ImageSum(:,Y_size-MaxOffset_y-50:Y_size,:)=0;

%NoOfRefPt=5;%Number of reference points
X=zeros(31,NoOfRefPt);
Y=zeros(31,NoOfRefPt);
A_image=zeros(31,31,NoOfRefPt);
for np=1:NoOfRefPt;% Find reference points

[W,I]=max(ImageSum);
[Z,J]=max(W);

Ax=I(J);
Ay=J;

[Ax Ay]

X(:,np)=[Ax-15:Ax+15]';
Y(:,np)=[Ay-15:Ay+15]';

ImageSum(Ax-30:Ax+30,Ay-30:Ay+30,:)=0;

A_image(:,:,np)=ref_image(X(:,np),Y(:,np),1);

end

filename1=strcat(filename,'_');
StartX=1;EndX=X_size;
StartY=1;EndY=Y_size;


ImageSum=ref_image;
ImageCount=1;
for n=StartImage+1:EndImage;
filename2=strcat(filename1,num2str(n))
read_image=double(imread(strcat(filename2,'.tif'),'tiff'))-back_image;
%read_image=read_image-min(min(min(read_image)));
% Search -MaxOffset,~+MaxOffset

ErrorIndex=zeros(MaxOffset_x*2+1,MaxOffset_y*2+1);

for nx=1:MaxOffset_x*2+1;
offset_x=nx-MaxOffset_x-1;
for ny=1:MaxOffset_y*2+1;
offset_y=ny-MaxOffset_y-1;

ErrorIndex(nx,ny)=0;

for np=1:NoOfRefPt;

Ax_image=read_image(X(:,np)+offset_x,Y(:,np)+offset_y)-A_image(:,:,np);
ErrorIndex(nx,ny)=ErrorIndex(nx,ny)+sum(sum(Ax_image.*Ax_image));

end

end
end

[W,I]=min(ErrorIndex);%nx
[Z,J]=min(W);%ny

offset_x=I(J)-MaxOffset_x-1
offset_y=J-MaxOffset_y-1

start_x=max(1-offset_x,1);
end_x=min(X_size-offset_x,X_size);
start_y=max(1-offset_y,1);
end_y=min(Y_size-offset_y,Y_size);

XX=start_x:end_x;
YY=start_y:end_y;
ImageTmp=ImageSum/ImageCount;
ImageTmp(XX,YY)=read_image(XX+offset_x,YY+offset_y);
ImageSum=ImageSum+ImageTmp;
ImageCount=ImageCount+1;

StartX=max(StartX,start_x);
EndX=min(EndX,end_x);
StartY=max(StartY,start_y);
EndY=min(EndY,end_y);

end

X=StartX:EndX;
Y=StartY:EndY;

ImageSum(:,:,2)=ImageSum(:,:,1);
ImageSum(:,:,3)=ImageSum(:,:,1);
MinValue=min(min(min(ImageSum(X,Y))));
ImageSum=ImageSum-MinValue;
ImageSum=ImageSum.*(ImageSum>=0);
MaxValue=max(max(max(ImageSum(X,Y))));
ImageSum=ImageSum/MaxValue;

filename1=strcat(filename,'(');
filename1=strcat(filename1,num2str(StartImage));
filename1=strcat(filename1,'...');
filename1=strcat(filename1,num2str(EndImage));
filename1=strcat(filename1,')');
imwrite(uint16(ImageSum*65535),strcat(filename1,'SUM.tif'),'tiff');

천문장비 개조.자작.뉴스.사용기.팁

천문장비 정보들의 모임(카메라제외)

  1. 휴가 프로젝트???

    Date2007.12.24 Category자작.개조 By박영식 Views6515
    Read More
  2. 회절을 줄이기 위한 반사경 개조

    Date2004.02.09 Category사용기.팁 By황인준 Views7121
    Read More
  3. 화소수와 화소 면적에 따른 화질 차이(2)

    Date2003.06.25 Category기기정보 By박병우 Views4299
    Read More
  4. 화성 사진

    Date2003.05.20 Category기기정보 By이건호 Views3903
    Read More
  5. 혹시... EQ6 분해해 보신분 계시나요 ?

    Date2005.07.26 Category토론방 By박진홍 Views9812
    Read More
  6. 행성촬영 및 staking에 대해 궁굼한점...

    Date2005.06.14 Category토론방 By박영식 Views9798
    Read More
  7. 행성 사진의 국제기구 보고 관련하여..( Mr. Ikemura : ALPO-JAPAN) -1

    Date2003.04.06 Category기기정보 By황인준 Views5193
    Read More
  8. 해상도에 대해 이렇게 말할 수밖에 없었던 사연(이준화님에 대한 답변)

    Date2003.05.01 Category기기정보 By박병우 Views3759
    Read More
  9. 합성초점거리를 구하는 엑셀파일

    Date2004.03.09 Category기기정보 By이건호 Views6068
    Read More
  10. 하늘상태에 따라 달라지는 영상의 비교

    Date2004.12.09 Category기기정보 By이준화 Views6372
    Read More
  11. 필름 Vs S2Pro Vs 냉각CCD from Matsumoto

    Date2003.07.03 Category기기정보 By황인준 Views5872
    Read More
  12. 피어제작기

    Date2003.12.18 Category자작.개조 By육호준 Views6234
    Read More
  13. 플랫이 이렇게 찍히네요.^^

    Date2005.06.07 Category토론방 By최승용 Views8522
    Read More
  14. 플래트너와 초점면까지의 거리

    Date2008.06.29 Category기기정보 By이준희 Views6738
    Read More
  15. 펠리칸 가방을 대신할 국산 가방

    Date2006.03.16 Category기기정보 By최승용 Views8304
    Read More
  16. 펜탁스 XP와 나글러 아이피스 비교

    Date2003.05.24 Category사용기.팁 By박병우 Views6095
    Read More
  17. 펜탁스 XP 14mm 와 나글러 아이피스 12mm 비교

    Date2003.06.03 Category사용기.팁 By박병우 Views5714
    Read More
  18. 펜탁스 XO 아이피스

    Date2003.07.19 Category사용기.팁 By이건호 Views5708
    Read More
  19. 펜탁스 67에 맞게 개조된 캐논 300mm 2.8L 렌즈

    Date2005.06.01 Category자작.개조 By박대영 Views8295
    Read More
  20. 펜탁스 16비트 냉각 DSLR

    Date2008.06.08 Category자작.개조 By박대영 Views10071
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 18 Next
/ 18

NADA. Network of Amatuer Digital Astrography © Since 2003, All Rights Reserved

Design ver 2.0 / Google Chrome 에 최적화 되어 있습니다.

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소