회전
turn(droneObj, deg2rad(45) );
# 드론 카메라 이미지 받아오기
% 카메라 오브젝트 생성
droneObj = ryze()
cameraObj = camera(droneObj);
% 카메라 오브젝트 구체화
droneObj = ryze()
cameraObj = camera(droneObj, 'FPV');
preview - 동영상 실시간으로 보기 가능
closepreview - 동영상 닫기
frame = snapshot(cameraObj) - 프레임받기
[frame, ts] = snapshot(cameraObj) - 드론 카메라에서 이미지 프레임 받아오기
imshow(frame)
# 드론 카메라에서 실시간 영상 받아오기
donreObj = ryze()
drone_cam = camera(droneObj);
preview(drone_cam)
takeoff(droneObj);
pause(3);
moveup(droneObj, 2);
pause(3);
land(droneObj);
closePreview(drone_cam);
# 드론카메라에서 이미지 프레임 받아오기 : snapshot()
donreObj = ryze()
drone_cam = camera(droneObj);
takeoff(droneObj);
pause(3);
[frame, ts] = snapshot(drone_cam); % 드론카메라가 보고있는 화면 캡처
for i = 1:2 % 90도 회전시키고 카메라 캡처 두번 반복
pause(1);
disp(ts);
imshow(frame);
pause(1);
turn(droneObj, deg2rad(90));
pause(3);
[frame, ts] = snapshot(drone_cam);
end
paise(1);
disp(ts);
imshow(frame);
puase(1);
land(droneObj);
<이미지 처리, 자르기, 색상공간변형, 엣지검출 >
img = imread('Image.png') % 작업공간에 img가 등록되고, 이미지의 크기도 알 수있음
imshow(img); % 이미지 확인
imwrite(img, 'write_image.png') % 이미지 저장
flipud(img) - 상하반전
fliplr(img) - 좌우반전
imrotate(이미지, 회전각도, 보간법, 출력이미지)
ex ) imrotate(img, 90, 'nearest', 'crop'); 마지막 변수 디폴트값 'loose'
imcrop(img, [150 150 200 200]); - 이미지 자르기, 매개변수는 자르려는 위치
# 색상 공간 변형하기
hsv_img = rgb2hsv(img); % 색상공간을 hsv로 변경
h,s,v 순서대로 출력하려면 hsv_img(:, :, N); % N을 1,2,3으로 순서대로 출력
# 엣지 검출하기
canny_image = edge(gray_image, 'Canny'); % 엣지 검출 전 이미지를 그레이스케일로 변경해야함
# 이미지 색 검출하기 - 임계값 처리
- 3가지 색의 임계값을 찾아 이진화 해보기
% 드론 객체와 카메라 객체 선언
drone = ryze();
cam = camera(drone);
% 임계값 초기값 설정
th_down=0.5;
th_up=0.6;
while 1
% 드론의 카메라 이미지를 받아와 원본 이미지 확인
frame=snapshot(cam);
subplot(2,1,1), subimage(frame); --> Image Processing Toolbox애드온 설치
pause(1);
% 이미지 hsv로 변환
hsv = rgb2hsv(frame);
h=hsv(:,:,1);
% 현재 저장된 임계값을 이용해 이미지 이진화하고 이미지 확인
if(th_up-th_down)<0
binary_res = (th_down<h)+(h<th_up);
else
binary_res = (th_down<h)&(h<tp_up);
end
subplot(2,1,2), subimage(binary_res);
disp("th_down: "+th_down+" th_up: "+th_up);
% 키보드 입력을 통한 임계값 조절
x=input("(quit: q, up:e, down:d) \ninput: ", 's'); disp(newline);
if x=='q'
disp("* final th_down:" + th_down +" final th_up "+th_up);
break
elseif x=='e'
th_down=th_down+0.025;
th_up=th_up+0.025;
elseif x=='d'
th_down=th_down-0.025;
th_up=th_up-0.025;
end
if th_down >1
th_down=th_down-1;
elseif th_down<0
th_down=th_down+1;
end
if th_up>1
th_up=th_up-1;
elseif th_up>0
th_up=th_up+1;
end
end
'참가 대회 > DroneLeft(~21년7월)' 카테고리의 다른 글
드론좌 금상 수상 - 수상 인터뷰 (0) | 2021.09.13 |
---|---|
[금상]대한전기학회 2021 미니드론 자율비행 경진대회 진행하면서 느낀 점 (0) | 2021.07.15 |
드론 원 인식/원 통과/착지 코드 (0) | 2021.07.12 |
ring 이미지 hsv변경 후 / ring인식 (0) | 2021.07.08 |
드론 2차 워크샵 (0) | 2021.05.08 |
드론대회 개요 (0) | 2021.03.23 |