W życiu każdego programisty kiedyś nastaje ten dzień. Dzień w którym coś nie działa i nawet po głębokim zagłębieniu się w kod projektu oraz dokumentację bibliotek zewnętrznych nie udaje się namierzyć przyczyny… Czytaj dalej ASP.Net MVC – brak wywołania ValidationProvidera
Miesiąc: marzec 2017
Rozpoznawanie znaków i częściowy sukces – współczynnik korelacji #2
Połowiczny sukces – program rozpoznaje znaki, ale jeszcze nie w 100% poprawnie.
Po kilku godzinach walki ze złośliwością rzeczy martwych (instalacja Linuxa obok Windowsa 10 przy aktywnym UEFI) udało mi się w końcu rozbudować kod o funkcję rozpoznawania znaków.
Czytaj dalej Rozpoznawanie znaków i częściowy sukces – współczynnik korelacji #2
Rozpoznawanie znaków – współczynnik korelacji #1
Ostatnie parę dni spędziłem na przygotowywaniu obrazków dużych liter oraz cyfr, które posłużą jako wzorzec przy rozpoznawaniu znaków wykrytych przy pomocy histogramu. Nie było to nic wartego dłuższego wspominania, ale dzięki temu mogę zacząć pisanie serca systemu.
Czytaj dalej Rozpoznawanie znaków – współczynnik korelacji #1
Rysowanie po obiekcie typu Mat
Dzisiejszy post będzie powiązany z reorganizacją kodu, który powstał do tej pory. Podczas rozwijania projektu naszła mnie myśl, że wypadałoby rozdzielić logikę stojącą za przetwarzaniem zawartości obrazu (wykrywanie linii oraz znaków) od tej, która stoi za jego przekształceniami takimi jak binaryzacja lub zmiana palety kolorów na skalę szarości. Tak powstał interface ImageContentOperations i implementująca go klasa DefaultImageContentOperations. Metody wchodzące w ich skład operują na obrazie zapisanym w obiekcie typu org.opencv.core.Mat. Zmiana ta wymusiła zmianę sposobu rysowania histogramów.
Wykrywanie położenia znaków
W poprzednim wpisie opowiedziałem w jaki sposób udało mi się określić położenie linii tekstu. Dzisiaj powiem pokrótce w jaki sposób określiłem położenie znaków.
Określenie wysokości linii tekstu
Dzisiaj będzie krótko, bo czas nagli. Jak wspominałem w poprzednich postach postanowiłem wykorzystać OpenCV wraz z Javą. Póki co znowu się zapoznajemy, ale udało mi się zrobić kilka fajnych rzeczy.
Hello Java my old friend…
Czy mieliście kiedykolwiek sytuację, że biblioteka, którą wybraliście okazała się nie spełniać stawianych przed nią wymagań? Czy po pewnym, nawet krótkim, czasie doszliście do wniosku, że trzeba znaleźć jakieś obejście problemów by móc kontynuować pracę?
Konfiguracja projektów i zależności
Dzisiaj post z kategorii lekkich. Pokażę jakich pakietów chcę użyć w projekcie, pokrótce je opiszę oraz podam jak je zainstalowałem.
Biblioteki, które będę wykorzystywał to:
- NHibernate
- FluentNHibernate
- AutoMapper
- Castle.Windsor
- Nunit
- Shouldly
- NSubstitute
Najpierw powoli jak żółw ociężale – czyli tworzymy projekt
No to startujemy.
Na początku pokażę wstępne przygotowanie projektów. Oczywiście w trakcie tworzenia aplikacji może się to zmienić, ale mimo wszystko na początku dobrze jest mieć jakiś wstępny podział.
System planuję podzielić na projekty z WebApi, warstwą dostępu do danych, logiką biznesową oraz aplikacją mobilną. Oczywiście nie zapomnę o testach jednostkowych, jednak nie przewiduję prowadzenia projektu w TDD, raczej pokryję testami logikę biznesową.
Czytaj dalej Najpierw powoli jak żółw ociężale – czyli tworzymy projekt