diff --git a/matlab_prot/untitled.m b/matlab_prot/untitled.m new file mode 100644 index 0000000000000000000000000000000000000000..229da14262eb9e1fcd1873b64651eed691976a02 --- /dev/null +++ b/matlab_prot/untitled.m @@ -0,0 +1,117 @@ +clc +close all + +% Connect to a camera +% +camera = cv.VideoCapture(1); +pause(4); +% get Frame +frame = camera.read; +%} +%frame = imread('dd.png'); +if (size(frame,1) ~= 0) + +% save frame +imwrite(frame, 'frame0.png'); +% show frame +figure, +imshow(frame); + +patternSize = [7,7]; +corners = cv.findChessboardCorners(frame, patternSize); +wind = cv.drawChessboardCorners(frame, patternSize, corners); + +% show frame +figure, +imshow(wind); +% save frame +imwrite(wind, 'frame0esq.png'); + +% muevo corners a otra estructura de datos +sizeV = size(corners,2); +esquinas = zeros(sizeV,2); +for i=1:sizeV + esquinas(i,1) = corners{i}(1); + esquinas(i,2) = corners{i}(2); +end + +% muestro de a una en orden qe las veo +%{ +e = round(esquinas); +orden = wind; +for i=1:sizeV + orden(e(i,2)-5:e(i,2)+5,e(i,1)-5:e(i,1)+5,:) = 0; + figure, + imshow(orden); +end + +%} + +% muestro de a una en orden qe las veo +%{ +e = round(esquinas); +externas = wind; +externas(e(1,2)-5:e(1,2)+5,e(1,1)-5:e(1,1)+5,:) = 0; +externas(e(7,2)-5:e(7,2)+5,e(7,1)-5:e(7,1)+5,:) = 0; +externas(e(43,2)-5:e(43,2)+5,e(43,1)-5:e(43,1)+5,:) = 0; +externas(e(49,2)-5:e(49,2)+5,e(49,1)-5:e(49,1)+5,:) = 0; +figure, +imshow(externas); +%} + +e = round(esquinas); +% distancias, promedio, media +%{ +d17 = sqrt((e(1,1)-e(7,1))^2 + (e(1,2)-e(7,2))^2); +d749 = sqrt((e(7,1)-e(49,1))^2 + (e(7,2)-e(49,2))^2); +d143 = sqrt((e(1,1)-e(43,1))^2 + (e(1,2)-e(43,2))^2); +d4349 = sqrt((e(43,1)-e(49,1))^2 + (e(43,2)-e(49,2))^2); +media = round(mean([d17,d749,d143,d4349])); +offset = 2*(media/7); +%} +offset = 48*2; +media = 48*6; +a = [e(1,:);e(7,:);e(43,:);e(49,:)]; +b = [ offset,offset ; offset+media,offset ; offset,offset+media ; offset+media,offset+media ]; + +matrizTransformada = cv.getPerspectiveTransform(a,b); + +transformada = cv.warpPerspective(frame, matrizTransformada,'DSize', [480,480]); +figure, +imshow(transformada); +imwrite(transformada, 'framehomogra.png'); + +% muestro de a una en orden qe las veo +%{ +e = 20:20:180; +cuadricula = transformada; +tablero = zeros(81,2); +for i=1:9 + for j=1:9 + cuadricula(e(i):e(i),e(j):e(j),:) = 0; + cuadricula(e(i):e(i),e(j):e(j),3) = 255; + tablero((i-1)*9+j,1) = e(i); + tablero((i-1)*9+j,2) = e(j); + end +end + +figure, +imshow(cuadricula); +imwrite(cuadricula, 'cuadricula'+i+'.png'); + +%} +%{ +outputString = sprintf('I am %d years old', n) +t2 = dlmread('tablero2.txt'); +dlmwrite('tablero2.txt', transformada); +%} + +%{ +edges = cv.Canny(transformada, 60); +figure, +imshow(edges); +imwrite(edges, 'edges.png'); +%} + +end +%%%%%%%%%%%% ----- FIN ----- %%%%%%%%%%%% \ No newline at end of file