Beeldverwerking - R2D2KLASB/Info GitHub Wiki

Beeldverwerking

Inleiding

Bij deze modulen houden wij ons bezig met alles dat met beeldverwerking te maken heeft. In deze modulen zijn wij bezig met een script te schrijven die ervoor zorgt dat als er op een knop wordt gedrukt dat er een foto wordt gemaakt en die foto automatische omgezet naar Gcode. Echter zit er nog een tussen stap in dit is dat we de image die gemaakt wordt eerst omzetten naar svg voor dat naar Gcode wordt omgezet. Uit eindelijk willen we deze Gcode door sturen via ros2 zodat hardware hier mee aan de slag kan.

Documentatie

Doxygen

Design keuze

In het begin van het project hadden we er voor gekozen om een raspberry pi te gebruiken. Want hier op zouden we makkelijk een camera kunnen monteren en ros2 draaien. Vervolgens zijn we van start gegaan met een foto omzetten naar bitmap(Dit werd verwacht van Hardware) dit hebben we meteen kunnen toepassen met images van het internet. Eind week 1 werden deze design keuzes verandert, Hardware wou geen bitmap meer maar Gcode. Hierdoor werden onze design keuzes ook anders we kregen het namelijk niet voor mekaar om een jpg direct om te zetten naar Gcode dus hier zijn we van afgestapt. Wel lukt het om een SVG om te zetten naar Gcode, Dus we hebben er voor gekozen om de img/ jpg om te zetten naar SVG en die weer om te zetten naar Gcode. Ook hebben wij de keuzen gemaakt om de gemaakte afbeeldingen niet op te slaan behalve de last genomen foto en deze word overwritte bij nemen van een nieuwe foto. De foto's worden gemaakt door een telefoon zodat we de foto kunnen uploaden via onze website die vervolgens automatische alles omzet en verstuurd.

Repository: https://github.com/R2D2KLASB/Beeldverwerking Documentatie (doxygen): https://github.com/R2D2KLASB/Beeldverwerking/blob/main/doxygen/index.html ( Moet nog een page worden op github ) Structuur beeldverwerking:

image

Libraries:

Web interface:

  • Flask

Foto bewerking:

  • OpenCV
  • Potrace
  • Numpy

Gcode

  • svg-to-gcode

Pi

  • RPi.GPIO

ROS2

  • rclpy

Stand van zaken

Momenteel zijn we bezig met de Gcode optimaliseren voor hardware. Want de Gcode die wij terug kregen van het omzetten van een img was te groot waardoor het te lang duurde om deze te teken. Ook zijn we bezig met het verfijnen van de beeldverwerking op de img. Het komt af en toe nog voor dat bij het maken van een foto sommigen lijnen verwaarloost worden waardoor de tekening niet mooi uit komt. Het verwerken van beeld doen we op het moment met de Kenny methode. In de toekomst willen we graag nog een mooie kast bouwen waar de foto's in gemaakt worden. Maar ons grootste doel is er voor zorgen dat we een foto kunnen maken en dat het zo strak wordt omgezet dat we ook hele complexen tekeningen kunnen na tekenen samen met hardware. Werken met curves is ook nog een mooie doelstelling.

Voorgaande werk

In de eerste week hebben we jpg omgezet naar bitmap. Dit was succesvol en hier hebben we ook nog de code voor stel zou het ooit nog nodig moeten zijn. Vervolgens zijn we gaan kijken of we jpg kunnen omzetten naar Gcode dit lukte niet direct de libraries die we hadden geprobeerd werkten niet lekker daarom zijn we voor anderen oplossing gaan zoeken. Ook was er 1 Gcode librarie die niet werkte na het stappen plan gevolgd te hebben op hun site. https://github.com/pjpscriv/py-svg2gcode We hebben ook poging gedaan om Ros 2 werkend te krijgen via de raspberry pi dit werkte in eerste instantie niet omdat we nog rasbian draaiend hadden op de raspberry pi. Daarom zijn we over gestapt naar Ubuntu hier werkte het wel op. Voor de camera hebben we een camera op de raspberry pi werkend echter wordt deze niet meer gebruikt maar een telefoon die bestand upload naar server. De camera modulen staat wel gereed in de git in dien we het nog willen gebruiken.