Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
9badce8
refactor: Rework the project structure
Vinetos Nov 23, 2020
2155674
fix: Update dependencies in README
Vinetos Nov 23, 2020
69e07fa
refactor: Move libs/ folder in src/
Vinetos Nov 23, 2020
f9ab7e1
feat: Add initialization of neural network
Vinetos Nov 23, 2020
05c39d3
feat: Propagation works
Vinetos Nov 24, 2020
f0c42dd
feat: Better propagation
Vinetos Nov 24, 2020
8102065
feat: Implementing for_each_in function in list
Vinetos Nov 24, 2020
d127421
feat: Adding custom args for_each_in
Vinetos Nov 25, 2020
5d53d45
feat: Adding backpropagation algorithm
Vinetos Nov 25, 2020
1dafd19
docs: Adding commentaries on neuralnetwork.h
Vinetos Nov 25, 2020
ecc00d9
fix: Use return value of fscanf
Vinetos Nov 25, 2020
da283f9
fix: Propagation is now tested
Vinetos Nov 25, 2020
5854955
fix: Updating last layer is now tested
Vinetos Nov 26, 2020
8455c5d
fix: Neural network works !
Vinetos Nov 28, 2020
14fd036
feat: Neural network can be saved
Vinetos Nov 28, 2020
527b346
feat: Include preprocessing methods
Vinetos Nov 28, 2020
915a897
feat: Adding Segmentation part
Vinetos Nov 28, 2020
2b2b21a
Tests on gui
Lise-Giraud Nov 28, 2020
feff8ac
feat: Application now include gtk3 lib
Vinetos Nov 29, 2020
d092cf8
feat: Open file explorer GTK
Vinetos Dec 10, 2020
d91e068
feat: Adding glade interface
Vinetos Dec 10, 2020
9100140
feat: Designing FileChooser and enabling callbacks
Vinetos Dec 11, 2020
4221406
feat: User can select an image and preview it
Vinetos Dec 11, 2020
cc54887
feat: Resize image when resizing windows
Vinetos Dec 11, 2020
bfce06b
feat: Adding train.c and updating interface
Vinetos Dec 12, 2020
8373129
block_seg_working
starcruiser5289 Dec 12, 2020
4791d3b
feat: Allow to only train the network
Vinetos Dec 12, 2020
ac43a96
feat: send ~~nud..~~ font
Vinetos Dec 12, 2020
3444a31
block done, modifying old code from knew structure and debugging
starcruiser5289 Dec 13, 2020
7cde222
feat: Updating train function and Update READMe
Vinetos Dec 13, 2020
025260c
fix: hori_histo now cumputes all arrays in histogram
starcruiser5289 Dec 13, 2020
3740dcf
fix: vert_histo's bug due to index problem, now works perfectly
starcruiser5289 Dec 13, 2020
9334dd5
feat: Display image in grayscale at the beginning of the program
Vinetos Dec 13, 2020
6f2e930
feat: word_seg working with
starcruiser5289 Dec 13, 2020
340183d
feat: line_seg and word_seg linked and working as intended with new b…
starcruiser5289 Dec 13, 2020
9fa5f80
fix: updated comments for word_seg and line_seg
starcruiser5289 Dec 13, 2020
ea90095
fix: letter_seg to correctly segment letter and not access data outsi…
starcruiser5289 Dec 13, 2020
6a8c0fd
feat: *_seg fonctions now gives access to constructed string of ident…
starcruiser5289 Dec 13, 2020
e35b054
feat(update): connected line_seg to __buildtreeX/Y
starcruiser5289 Dec 13, 2020
3b4885b
feat(update): modify .h file to match .c, removed tests from main fon…
starcruiser5289 Dec 13, 2020
3d023fa
fix: Bug that does not refresh the graycaled image
Vinetos Dec 13, 2020
43dff48
feat: Adding otsu selection
Vinetos Dec 13, 2020
d0a885f
fix(upgrade): corrected seg() to initialize opti image, and modified …
starcruiser5289 Dec 13, 2020
02f837c
feat(upgrade): line/word/letter_seg now free memory of used block str…
starcruiser5289 Dec 14, 2020
dac77f3
feat(upgrade):added freetree fonction to free allocated memory of Nod…
starcruiser5289 Dec 14, 2020
dfff380
feat: Adding string equals
Vinetos Dec 14, 2020
234cb5a
feat: new fileout fonction to save on .txt file str generated, concer…
starcruiser5289 Dec 15, 2020
f047f35
feat: first steps to call neural network from seg
starcruiser5289 Dec 15, 2020
7f07959
Merge branch 'feature/reorganize' into feature/Segmentation2
Vinetos Dec 15, 2020
9c6e15d
fix: segmentation is now added
Vinetos Dec 15, 2020
31ac07c
fix: train is now merge with predict
Vinetos Dec 15, 2020
e98788e
feat: to_nn_sized
Vinetos Dec 15, 2020
ead16d0
feat: Add bradley method and adding interface params
Vinetos Dec 15, 2020
dd877fa
feat: Bradley binarisation complete !
Vinetos Dec 15, 2020
97a960c
fix: Make the project compile :D
Vinetos Dec 15, 2020
77e3ba7
fix: Delete some work
Vinetos Dec 15, 2020
e3a1e82
feat: Adding filter and rotation methods
Vinetos Dec 15, 2020
c066df0
feat: Adding training sets
Vinetos Dec 15, 2020
db937f8
feat: Adding training sets
Vinetos Dec 15, 2020
b01a9c2
feat: Transform image into matrix and give them to the segmentation
Vinetos Dec 15, 2020
16dc43b
wip: Calling neunral network avec resize
Vinetos Dec 15, 2020
e1ec1b2
wip: Segmentation
Vinetos Dec 15, 2020
1e7fe8f
wip: Segmentation
Vinetos Dec 15, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 1 addition & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ jobs:
- name: Install deps
run: |
sudo apt-get update -y -qq
sudo apt install libsdl1.2-dev libsdl-image1.2-dev
- name: CMake the project
run: cmake .
sudo apt install libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libgtk-3-dev
- name: Make the projet
run: make
80 changes: 46 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,67 @@ cmake_minimum_required(VERSION 3.16)
project(CText C)

set(CMAKE_C_STANDARD 99)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")


find_package(SDL REQUIRED)
find_package(SDL_image REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
pkg_check_modules(SDL REQUIRED sdl)
pkg_check_modules(SDL_IMAGE REQUIRED SDL_image)

include_directories(
${SDL_INCLUDE_DIRS}
${SDL_IMAGE_INCLUDE_DIRS}
${GTK3_INCLUDE_DIRS}
)

add_executable(
CText src/neuralnetwork/main.c
src/neuralnetwork/neuron.c src/neuralnetwork/neuron.h
src/neuralnetwork/function.c src/neuralnetwork/function.h
src/neuralnetwork/layer.c src/neuralnetwork/layer.h
src/util.c src/util.h
)

add_executable(
CText-tests src/test/main.c
src/neuralnetwork/neuron.c src/neuralnetwork/neuron.h
src/neuralnetwork/function.c src/neuralnetwork/function.h
src/neuralnetwork/layer.c src/neuralnetwork/layer.h
src/util.c src/util.h
src/test/test.c src/test/test.h
src/test/test_method.c src/test/test_method.h
link_directories(
${SDL_LIBRARY_DIRS}
${SDL_IMAGE_LIBRARY_DIRS}
${GTK3_LIBRARY_DIRS}
)

add_executable(
CText-display src/preprocessing/main.c
src/display/pixel_operations.c src/display/pixel_operations.h
src/display/display.c src/display/display.h
src/preprocessing/grayscale.c src/preprocessing/grayscale.h
src/preprocessing/otsu.c src/preprocessing/otsu.h
add_definitions(
${SDL_CFLAGS_OTHER}
${SDL_IMAGE_CFLAGS_OTHER}
${GTK3_CFLAGS_OTHER}
)

add_executable(
CText-seg
src/segmentation/segmentation.c src/segmentation/segmentation.h
)
CText
src/main.c
src/libs/list/list.c
src/libs/list/list.h
src/libs/string/string.c
src/libs/string/string.h
src/libs/application/application.c
src/libs/application/application.h
src/libs/application/app.h
src/libs/neural_network/neuralnetwork.c
src/libs/neural_network/neuralnetwork.h
src/libs/neural_network/neuron.c
src/libs/neural_network/neuron.h
src/libs/neural_network/train.c
src/libs/neural_network/train.h
src/libs/image_manipulation/pixel_operations.c
src/libs/image_manipulation/pixel_operations.h
src/libs/image_manipulation/otsu.c
src/libs/image_manipulation/otsu.h
src/libs/image_manipulation/grayscale.c
src/libs/image_manipulation/grayscale.h
src/libs/image_manipulation/segmentation.c
src/libs/image_manipulation/segmentation.h
src/libs/image_manipulation/bradley.c
src/libs/image_manipulation/bradley.h
src/libs/image_manipulation/filter.c
src/libs/image_manipulation/filter.h
src/libs/image_manipulation/rotation.c
src/libs/image_manipulation/rotation.h)

target_link_libraries(CText m ${SDL_LIBRARY} ${SDL_IMAGE_LIBRARIES})
target_link_libraries(CText-display m ${SDL_LIBRARY} ${SDL_IMAGE_LIBRARIES})
target_link_libraries(CText-tests m)
target_link_libraries(CText m ${SDL_LIBRARY} ${SDL_IMAGE_LIBRARIES} ${GTK3_LIBRARIES})

if (CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wformat-truncation -Wformat-overflow -Wundef -fno-common -Wconversion")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wformat-truncation -Wformat-overflow -Wundef -fno-common -Wconversion -rdynamic")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -rdynamic -O0")
endif ()
if (MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
endif ()
endif ()
29 changes: 29 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))

SOURCE = $(call rwildcard, src/, *.c)
OBJS = $(SOURCE:%.c=_build/%.o)
HEADER = $(SOURCE:.c=.h)
OUT = CText.exe
CC = gcc
FLAGS = -O3
DEBUG_FLAGS = -O0

CFLAGS = -Wall -Wextra -Werror -rdynamic -std=c99 `pkg-config --cflags gtk+-3.0`
SDL_FLAGS = `sdl-config --cflags --libs` -lSDL_image `pkg-config --libs gtk+-3.0` `pkg-config gmodule-2.0 --libs`
CPPFLAGS = `pkg-config --cflags sdl` -MMD `pkg-config --libs gtk+-3.0`


CPPFLAGS= `pkg-config --cflags sdl` -MMD

all: $(OBJS)
$(CC) $(FLAGS) -g $(OBJS) -o $(OUT) ${SDL_FLAGS} -lm -ldl

debug: $(OBJS)
$(CC) $(DEBUG_FLAGS) -g $(OBJS) -o $(OUT) ${SDL_FLAGS} -lm -ldl

_build/%.o: %.c
mkdir -p $(dir $@)
$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $(^:_build=)

clean:
rm -fr $(OBJS) $(OUT) _build/ *.jpg
12 changes: 6 additions & 6 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ git clone https://github.com/C-Text/CText.git
= Dependencies =

gcc
cmake
make
sdl
sdl2
sdl2_image
sdl_image
sdl_gfx
gtk3

= Build =
cmake .
make

= Launch =
./CText
./CText-tests
./CText.exe

./CText.exe -t : Train the neural network

= Contribute =

Expand Down
100 changes: 0 additions & 100 deletions cmake/FindSDL2_image.cmake

This file was deleted.

44 changes: 44 additions & 0 deletions data/tmp/out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@












































Loading