Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • aricca/chessTrack
  • nicolas.furquez/chessTrack
2 results
Show changes
Commits on Source (16)
Showing
with 722 additions and 5 deletions
This diff is collapsed.
......@@ -92,8 +92,6 @@ public class ChessTrackActivity extends Activity implements
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
_manager.setConnection("192.168.1.101", 5555); // FIXME DELETE
// !!!!
Editable value = input.getText();
if (value == null || value.toString().equals("")
|| !value.toString().matches(IPV4_REGEX)) {
......@@ -133,7 +131,7 @@ public class ChessTrackActivity extends Activity implements
int port = Integer.parseInt(value.toString());
Log.i(TAG, "PORT=" + port);
//_manager.setConnection(ip, port);
_manager.setConnection(ip, port);
}
}
});
......
......@@ -32,8 +32,8 @@ public class Client {
public void EstablishConnection(String serverIp, int serverPort) {
Log.i(TAG, "init client-server communication");
// this._serverIp = serverIp;
// this._serverPort = serverPort;
this._serverIp = serverIp;
this._serverPort = serverPort;
try {
Log.i(TAG, "Server on " + this._serverIp + ":" + _serverPort);
......
......@@ -3,3 +3,6 @@ project( SubsBackground )
find_package( OpenCV REQUIRED )
add_executable( SubsBackground SubsBackground.cpp )
target_link_libraries( SubsBackground ${OpenCV_LIBS} )
project( Corners )
add_executable( Corners Corners.cpp )
target_link_libraries( Corners ${OpenCV_LIBS} )
#include <string>
#include <iostream>
#include <vector>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
//----------------------------------------------------------
// MAIN
//----------------------------------------------------------
int main(int argc, char* argv[])
{
// src image
Mat src;
// dst image
Mat dst;
// Image loading
namedWindow("result");
namedWindow("src");
src=imread("image.png",0);
cv::cvtColor(src,dst,cv::COLOR_GRAY2BGR);
Mat corners;
cv::goodFeaturesToTrack(src,corners,100,0.01,20.0);
for(int i=0;i<corners.rows;++i)
{
circle(dst,cv::Point(corners.at<float>(i,0),corners.at<float>(i,1)),3,Scalar(255,0,0),-1,CV_AA);
}
imshow("src",src);
imshow("result",dst);
//----------------------------------------------------------
// Wait key press
//----------------------------------------------------------
while (waitKey(0) != 'q');
destroyAllWindows();
return 0;
}
......@@ -45,6 +45,7 @@ h5 {
}
p {
margin-bottom: 20px;
font-size: 15px;
}
.lead {
font-size: 14px;
......
This diff is collapsed.
<!DOCTYPE html>
<html lang="en">
<head>
<title>ChessTrack.::.Introducción</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Your description">
<meta name="keywords" content="Your keywords">
<meta name="author" content="Your name">
<link rel="icon" href="img/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/responsive.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/camera.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,600,700' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/camera.js"></script>
<script src="js/jquery.ui.totop.js" type="text/javascript"></script>
</head>
<body>
<!--==============================header=================================-->
<header class="p0">
<div class="container">
<div class="row">
<div class="span12">
<div class="header-block clearfix">
<div class="clearfix header-block-pad">
<h1 class="brand"><a href="index.html"><img src="img/logo.png" alt=""></a><span>Seguimiento de una Partida de Ajedrez.</span></h1>
<span class="contacts">Integrantes:<br>
<span>&nbsp;&nbsp;&nbsp;Aylen Ricca (<a href="mailto:aricca@fing.edu.uy">aricca@fing.edu.uy</a>)<br>&nbsp;&nbsp;&nbsp;Nicolás Furquez (<a href="mailto:nfurquez@fing.edu.uy">nfurquez@fing.edu.uy</a>)</span>
<br>Tutor:<br>
<span>&nbsp;&nbsp;&nbsp;Álvaro Gómez (<a href="mailto:agomez@fing.edu.uy">agomez@fing.edu.uy</a>)</span>
</span>
<span class="contacts">
<img src="img/chess0.png" alt="">
</span>
</div>
<div class="navbar navbar_ clearfix">
<div class="navbar-inner navbar-inner_">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse_">MENU</a>
<div class="nav-collapse nav-collapse_ collapse">
<ul class="nav sf-menu">
<li class="active li-first"><a href="index.html"><em class="hidden-phone"></em><span class="visible-phone">Home</span></a></li>
<li class="sub-menu"><a href="#">Introducción</a>
<ul>
<li><a href="descripcion_del_proyecto.html">Descripción del Proyecto</a></li>
<li class="sub-menu"><a href="#">Documentos</a>
<ul>
<li><a href="documentos/presentacion_inicial.pdf" target="_blank">Presentación Inicial</a></li>
<li><a href="documentos/plan_de_trabajo.pdf">Plan de Trabajo</a></li>
<li><a href="documentos/presentacion_final.pdf">Presentación Final</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="desarrollo.html">Desarrollo</a></li>
<li><a href="trabajo_a_futuro.html">Trabajo a Futuro</a></li>
<li><a href="links_de_interes.html">Links de Interés</a></li>
<li><a href="galeria_de_imagenes.html">Galería de Imágenes</a></li>
<li><a href="videos.html">Videos</a></li>
</ul>
</div>
<ul class="social-icons">
<li><a href="http://www.fing.edu.uy/"><img src="img/icon-1.png" alt=""></a></li>
<li><a href="http://www.universidad.edu.uy/"><img src="img/icon-2.png" alt=""></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<!--==============================content=================================-->
<section id="content">
<div class="sub-content">
<div class="container">
<div class="row">
<div class="span6 float2">
<br><br><br><br><br>
<p>Como antecedentes se cuenta con un proyecto de la asignatura llevado a cabo en 2013, 8x8CAM, el cual es similar en características pero desarrollado para PC y sólo se tomaban fotogramas del tablero antes y después del movimiento, en nuestro caso el procesamiento es en tiempo real y es de sumo interés poder identificar cuándo obtener frames con tableros válidos.</p>
<p>El tablero utilizado será uno profesional como los de la figura, proporcionado por el tutor; se utilizará un ambiente donde la iluminación será controlada y la partida será “lenta”, con esto se quiere decir que se dará tiempo al dispositivo a procesar la partida entre movimiento y movimiento.</p>
<figure>
<img src="galeria/img_desc_03.png" class="img-radius" alt="Tablero Profesional" style="width: 250px">
&nbsp;&nbsp;
<img src="galeria/img_desc_04.png" class="img-radius" alt="Tablero Profesional" style="width: 250px">
</figure>
<p>Como objetivo opcional, se plantea la posibilidad de transcribir la partida a voz para jugadores no videntes.</p>
<p>Dado que una partida normal de ajedrez es muy rica en movimientos, en un principio se plantea la detección de una partida con movimientos básicos, en la segunda iteración se incluirá la detección de jake y jake mate, valiéndose de las <a href="http://es.wikipedia.org/wiki/Reglamento_del_ajedrez">reglas</a> oficiales de ajedrez, si el tiempo lo permite se tratará de detectar enroques, coronaciones (promociones) y captura al paso, igualmente se tendrá en cuenta en el diseño de la arquitectura estos casos especiales para una futura extensión.</p>
<p>Para procesar las capturas de una forma más eficiente se usará la biblioteca <a href="http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html">OpenCV4Android</a> dado que cuenta con una gran cantidad de utilitarios para el procesamiento de imágenes.</p>
</div>
<div class="span6 float">
<h4>Descripción del Proyecto.</h4>
<p><strong class="clr">En los siguientes párrafos se describen los lineamientos del proyecto.</strong><br>
El trabajo que se aborda es el procesamiento en tiempo real de una partida lenta de ajedrez desde un dipositivo móvil mediante tratamiento de imágenes. A su vez, contar con la persistencia y/o transmisión de la partida en <a href="http://es.wikipedia.org/wiki/Notaci%C3%B3n_algebraica">notación algebraica</a>.</p>
<figure>
<a href="https://www.youtube.com/v/GdQmgzBK0Jo"><img src="galeria/img_desc_01.png" class="img-radius" alt="Reproducción de partida" style="width: 300px"></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<img src="galeria/img_desc_02.png" class="img-radius" alt="Notación algebraica" style="height: 300px">
</figure>
<p>Las restricciones que se plantean para esta realidad son la utilización de un tablero profesional, su ubicación en una posicion fija, iluminación controlada y el dispositivo móvil colocado de tal manera que pueda captar con su cámara la totalidad del tablero.</p>
<p>EL proyecto se en marca dentro del proyecto final la asignatura <a href="https://eva.fing.edu.uy/course/view.php?id=520">Tratamiendo de Imágenes por Computador</a> del <a href="http://iie.fing.edu.uy/">Instituto de Ingeniería Eléctrica</a> de la Facultad de Ingeniería de la Universidad de la República. El mismo, como se mencionó anteriormente consiste en reconocer el movimiento de las piezas dentro de una partida de ajedrez. El problema es interesante desde el punto de vista del tratamiento de imágenes, dado que posee una complejidad rica en problemas comunes en el proceso de racionalizar una imagen, desde detectar dónde se ubica cada ficha en todo momento y reconocer su recorrido, hasta saber cuando no se debe de procesar una imagen ya que el jugador está moviendo las piezas en ese momento.</p>
<p>El problema planteado se presenta en el marco de una partida de ajedrez clásica, en donde interesa transcribir a notación algebraica la partida, en tiempo real, para ser enviada a un servidor o un jugador remoto. Como hoy en día es muy accesible tener un celular con la potencia para procesar imágenes, el proyecto se llava a cabo con la tecnología <a href="http://developer.android.com/index.html">Android</a>.</p>
</div>
</div>
</div>
</div>
</section>
<!--==============================footer=================================-->
<footer>
<div class="container">
<div class="row">
<div class="span4 float2">
Proyecto de fin de curso 2014 de Tratamiento de Imágenes por Computadora dictado en la Facultad de Ingeniería de la Universidad de la República, Uruguay
<br>Sitio web del curso: <a href="https://eva.fing.edu.uy/course/view.php?id=520">Tratamiento de Imágenes por Computadora</a>
</div>
<div class="span8 float">
<ul class="footer-menu">
<li><a href="descripcion_del_proyecto.html">Descripción del Proyecto</a>|</li>
<li><a href="desarrollo.html">Desarrollo</a>|</li>
<li><a href="trabajo_a_futuro.html">Trabajo a Futuro</a>|</li>
<li><a href="links_de_interes.html">Links de Interés</a></li>
<li><a href="galeria_de_imagenes.html">Galería de Imágenes</a></li>
<li><a href="videos.html">Videos</a></li>
</ul>
Stylish 2014 | <a href="mailto:aricca8@gmail.com">@yle</a>
</div>
</div>
</div>
</footer>
<script type="text/javascript" src="js/bootstrap.js"></script>
</body>
</html>
\ No newline at end of file
File added
File added
web/galeria/config0.png

37 KiB

web/galeria/config1.png

35.9 KiB

web/galeria/config2.png

37.1 KiB

web/galeria/config3.png

36.3 KiB

web/galeria/cornersC1.png

205 KiB

web/galeria/cornersC2.png

202 KiB

web/galeria/cornersM1.png

265 KiB

web/galeria/cornersM2.png

254 KiB

web/galeria/eclipse4Android.png

84.9 KiB