Ort Lab
-
[Project_AF] 자동초점 현미경 개발기 (9) - 실행파일 변환Ort Lab 2020. 4. 14. 00:25
저번까지 해서 자동초점 현미경의 프로그래밍 파트가 끝났습니다. 다만, 이를 실제로 사용하기 위해서 일일히 파이썬을 깔고, ~.py를 실행시킬 수 없음으로 파이썬 파일을 exe 실행파일로 변환합니다. 이는 pyinstaller를 이용합니다. pyinstaller를 사용하기 위해서 모듈을 import 합니다. >> pip install pyinstaller 모듈을 설치했으면 exe파일로 변환시키기 전에 아이콘을 지정합시다. 아이콘이라 하면 요런 아이콘이요. 기본적으로 exe실행파일은 이렇게 생겼습니다. 안이쁘니 바꿔주죠. 일단 exe파일로 사용할 이미지를 준비합니다. png파일로 준비하세요. 기본적으로 아이콘 변경은 정사각형을 지원하기때문에 정사각형 맞춰서 준비해주시면 됩니다. 그러면 이 사이트로 접속하면 ..
-
[Project_AF] 자동초점 현미경 개발기 (8) - 함수제작-3 [자동초점]Ort Lab 2020. 4. 13. 23:55
지난 3월 9일이후 거의 1달만이네요. 코로나 조심들 하시고.. 학교 못가시는 학생분들 파이팅... 쨋든... 자동초점을 위해서 1~7편까지 왔네요. 8에서는 자동초점 기능을 구현합니다. 현미경의 조동나사를 회전시킬 모터는 42각 스텝모터를 사용하는데 그 이유는 1 fullstep에 1.8도를 회전하기 때문에 제어에 용이해서입니다. 근데 지금생각해보니 자동초점 함수 제작 보다는 하드웨어를 먼저 쓰는게 나았던거 같긴한데 고치기 귀찮음으로 그냥 지나갑시다. 자동 초점은 다음과 같은 방식으로 작동합니다. 왼쪽은 현재 재물대의 높이(맨위가 렌즈쪽)이고, 오른쪽은 카메라에서 실시간으로 계산한 Definition(선명도)입니다. 1차적으로 붉은색으로 표시된 화살표대로 쭉 내려가며 스캔을 진행합니다. 이 스캔에서는 ..
-
[Project_AF] 자동초점 현미경 개발기 (7) - 함수제작-2 [제물대 이동]Ort Lab 2020. 3. 9. 12:48
저번 글에서 save_data()함수를 완성하였습니다. 이번에는 장치의 제물대를 제어하기 위한 함수들을 완성하려합니다. up_step() - 제물대 위로 이동 down_step() - 제물대 아래로 이동 settop() - 현재위치를 제물대 최대높이로 설정 이렇게 3개의 함수가 있습니다. 일단, 제물대의 높이를 조종하기 위한 모터는 컴퓨터로 바로 제어하기 힘들기 때문에 아두이노를 이용할겁니다. 컴퓨터에서 신호를 보내 아두이노를 제어하기 위해서는 시리얼 통신을 이용합니다. import serial Port_adress = 'COM2' AVR = serial.Serial(Port_adress, 9600) AVR.write(b'0') 위의 코드는 9600비트/초의 통신속도로 COM2로 '0'을 전송하는 코드입..
-
[Project_AF] 자동초점 현미경 개발기 (6) - 함수제작-1 [사진저장]Ort Lab 2020. 3. 8. 23:50
(5)에서 제작한 GUI에 각 버튼에 해당하는 함수를 본격적으로 작성해야겠네요. 정의해야할 함수는 다음과 같습니다. save_data() - 카메라 화면을 ○○.jpg로 저장 settop() - 현재위치를 제물대 최대높이로 설정 up_step() - 제물대 위로 이동 down_step() - 제물대 아래로 이동 AF() - 자동초점 실행기능 일단 가장 간단한 save_data()부터 빠르게 해보죠. 일단 캡쳐한 화면을 저정해야합니다. def save_data(): text = 'Image' ret, frame = cap.read() cv2.imwrite('./Save/%s.jpg'%text,frame) print('System >>> Data_save Success [%s.jpg]'%text) 이 함수를..
-
[Project_AF] 자동초점 현미경 개발기 (5) - GUIOrt Lab 2020. 3. 6. 00:24
저번 글(4)까지 해서 자동초점을 위한 준비는 끝이 났습니다. 이제 이를 이용해서 본격적으로 프로그램을 제작해야죠! 그런의미로 오늘은 GUI를 제작할 예정입니다. 일단 GUI에 기본적으로 들어가야할 기능을 선정해봅시다. 기본적인 기능은 초점을 잡는것이니, 초점을 잡는 기능은 있어야겠고.. 필요할 경우 제물대의 높이를 버튼으로 조종할 수 있도록 해야겠군요. 그리고 접안렌즈쪽은 카메라가 있으니, gui 자체에서 카메라 화면을 크게 보여주는 것도 중요하겠군요. 또한 연구용으로 쓰려면 촬영이 중요하니.. 프로그램 자체에 현재 카메라화면을 스크린샷해서 원하는 이름으로 저장해주는 기능도 있어야겠군요. 대충 GUI를 디자인해보자면.. 네 이렇습니다. 붉은색으로 숫자를 써놓았으니.. 하나하나 짚어보면 1. 이 큼직한 ..
-
[Project_AF] 자동초점 현미경 개발기 (4) - 초점 확인 알고리즘Ort Lab 2020. 3. 5. 01:32
전 글이 생각보다 심각하게 길어진 관계로... 이어서 바로 가겠습니다! 네 뭐 방법은 전 글에서 대충 설명했고.. 이걸 한번 프로그램적으로 적용해보겠습니다. 전 파이썬을 통해서 프로그래밍할 예정이기에... 파이참을 사용합니다. 일단.. Sobel Algorithm 이라는것이 있습니다. 이 알고리즘은 이미지를 미분합니다. x축방향으로 미분하다고 하면 현 픽셀(x,y)의 값을 │(x,y의 밝기) - (x+1,y의 밝기)│ 로 치환합니다. 저게 뭔소리냐면.. 밝기의 차이만큼을 현 픽셀의 값으로 리턴시키는 겁니다. (참 쉽죠?) 자 그럼.. 차차 진행해보죠 일단! (image.jpg)를 불러와서 흑백(GrayScale)로 바꿔줍니다. import cv2 img = cv2.imread("Image.jpg", cv..
-
[Project_AF] 자동초점 현미경 개발기 (3) - 초점 확인방법Ort Lab 2020. 3. 4. 23:32
저번 도식화 글에서 항목 1번을 아마 그냥 넘어갔을겁니다. -카메라를 통해 모종의 방법으로 상의 초점이 맞는지를 확인한다. 이거요. 그래서.. 그.. 모종의 방법에는 어떤게 있을까요? 결과적으로 보자면 자동초점 현미경을 통해 볼거는 세포같은거란 말이죠. 네 위에 저런거요. 저거를 잘 보면.. 세포사이의 경계와, 세포 내부쪽, 핵에 특징점이 나타납니다. 근데 저거는 초점이 잘 맞았을때 저렇게 보이는것이고 초점이 잘 안맞을경우.. 이렇게 흐리뭉텅하게 보이겠죠. 근데 이정도만 해도 초점에 근접한 편이고.. 초점에서 조금 더 어긋나면.. 그냥 이렇게... 누리끼리한 하얀색으로 보입니다. (누리끼리한건 현미경 자체 조명 영향임다) 네 그래서 제물대를 움직이면 3→2→1→2→3으로 진행될겁니다. 초점이 맞은정도를 ..
-
[Project_AF] 자동초점 현미경 개발기 (2) - SchematicOrt Lab 2020. 3. 3. 01:03
개학이 연기됐네요... 원래대로였으면 오늘이 개학식이고... 1주 연기라 해도 다음주일 터인데.. 어쩌다보니 3월 23일까지 개학이 연기됬네요 ㅋㅋㅋㅋㅋㅋ (환장) 뭐 전지전능하신 교육부께서 개학을 연기를 하시겠다는데.. 쨋든 코로나 참 여러사람 환장하게 만드네요. 뭐 그건 그렇다 치고.. 저번글에 열심히 떡밥을 뿌려놨으니 회수를 해야죠. 개발의 첫단계! 도식화 입니다. (아 참고로 첫단계니 뭐니 이건 제 개인적으로 정하는 순서일 뿐 국룰인건 아닙니다) 뭘 만들려면 계획없이 만들기는 힘들죠. 도식화는 장치의 작동방식이나, 그 구조, 기능등을 말그대로 도식화 하는겁니다. 이 도식화를 하기에 앞서.. 어떤 기능들이 필요할지 생각해봅시다. 1. 카메라를 통해 모종의 방법으로 상의 초점이 맞는지를 확인한다. 2..