%global _empty_manifest_terminate_build 0 Name: python-gco-wrapper Version: 3.0.8 Release: 1 Summary: pyGCO: a python wrapper for the graph cuts package License: MIT URL: http://vision.csd.uwo.ca/code/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f2/7c/f56206f0e6ebf7f9465f76bbac269959a3f1d46ad4b291794a6a63803762/gco-wrapper-3.0.8.tar.gz Requires: python3-Cython Requires: python3-numpy %description This is a python wrapper for [gco-v3.0 package](http://vision.csd.uwo.ca/code/), which implements a graph cuts based move-making algorithm for optimization in Markov Random Fields. It contains a copy of the **gco-v3.0 package**. Some of the design were borrowed from the [gco_python](https://github.com/amueller/gco_python) package. However, compared to gco_python: * This package does not depend on Cython. Instead it is implemented using the ctypes library and a C wrapper of the C++ code. * This package is an almost complete wrapper for gco-v3.0, which supports more direct low level control over GCoptimization objects. * This package supports graphs with edges weighted differently. This wrapper is composed of two parts, a C wrapper and a python wrapper. ## Implemented functions * **cut_general_graph**(...) * **cut_grid_graph**(...) * **cut_grid_graph_simple**(...) ## Building wrapper 1. download the last version of [gco-v3.0](http://vision.csd.uwo.ca/code/gco-v3.0.zip) to the _gco_source_ 1. compile gco-v3.0 and the C wrapper using `make` 1. compile test_wrapper using `make test_wrapper` 1. run the C test code `./test_wrapper` (now you have the C wrapper ready) ```bash make download make all make test_wrapper ./test_wrapper ``` The successful run should return: ```bash labels = [ 0 2 2 1 ], energy=19 data energy=15, smooth energy=4 ``` Next test the python wrapper using `python test_examples.py`, if it works fine you are ready to use pygco. To include pygco in your code, simply import pygco module. See the documentation inside code for more details. ## Install wrapper Clone repository and enter folder, then ```bash pip install -r requirements.txt python setup.py install ``` Now it can be also installed from PyPi ```bash pip install gco-wrapper ``` ## Show test results Visualisation of the unary terns for **binary segmentation** ![unary terms](./images/binary_unary.png) **4-connected** components with the initial labeling (left) and estimated labeling with regularisation **1** (middle) and **0** (right) ![labelling](./images/binary_labels-4conn.png) **8-connected** components with the initial labeling (left) and estimated labeling with regularisation **1** (middle) and **0** (right) ![labelling](./images/binary_labels-8conn.png) Visualisation of the unary terns for **3 labels segmentation** ![unary terms](./images/grid_unary.png) with the __initial__ labeling (left) and __estimated__ labeling (right) ![labelling](./images/grid_labels.png) %package -n python3-gco-wrapper Summary: pyGCO: a python wrapper for the graph cuts package Provides: python-gco-wrapper BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-cffi BuildRequires: gcc BuildRequires: gdb %description -n python3-gco-wrapper This is a python wrapper for [gco-v3.0 package](http://vision.csd.uwo.ca/code/), which implements a graph cuts based move-making algorithm for optimization in Markov Random Fields. It contains a copy of the **gco-v3.0 package**. Some of the design were borrowed from the [gco_python](https://github.com/amueller/gco_python) package. However, compared to gco_python: * This package does not depend on Cython. Instead it is implemented using the ctypes library and a C wrapper of the C++ code. * This package is an almost complete wrapper for gco-v3.0, which supports more direct low level control over GCoptimization objects. * This package supports graphs with edges weighted differently. This wrapper is composed of two parts, a C wrapper and a python wrapper. ## Implemented functions * **cut_general_graph**(...) * **cut_grid_graph**(...) * **cut_grid_graph_simple**(...) ## Building wrapper 1. download the last version of [gco-v3.0](http://vision.csd.uwo.ca/code/gco-v3.0.zip) to the _gco_source_ 1. compile gco-v3.0 and the C wrapper using `make` 1. compile test_wrapper using `make test_wrapper` 1. run the C test code `./test_wrapper` (now you have the C wrapper ready) ```bash make download make all make test_wrapper ./test_wrapper ``` The successful run should return: ```bash labels = [ 0 2 2 1 ], energy=19 data energy=15, smooth energy=4 ``` Next test the python wrapper using `python test_examples.py`, if it works fine you are ready to use pygco. To include pygco in your code, simply import pygco module. See the documentation inside code for more details. ## Install wrapper Clone repository and enter folder, then ```bash pip install -r requirements.txt python setup.py install ``` Now it can be also installed from PyPi ```bash pip install gco-wrapper ``` ## Show test results Visualisation of the unary terns for **binary segmentation** ![unary terms](./images/binary_unary.png) **4-connected** components with the initial labeling (left) and estimated labeling with regularisation **1** (middle) and **0** (right) ![labelling](./images/binary_labels-4conn.png) **8-connected** components with the initial labeling (left) and estimated labeling with regularisation **1** (middle) and **0** (right) ![labelling](./images/binary_labels-8conn.png) Visualisation of the unary terns for **3 labels segmentation** ![unary terms](./images/grid_unary.png) with the __initial__ labeling (left) and __estimated__ labeling (right) ![labelling](./images/grid_labels.png) %package help Summary: Development documents and examples for gco-wrapper Provides: python3-gco-wrapper-doc %description help This is a python wrapper for [gco-v3.0 package](http://vision.csd.uwo.ca/code/), which implements a graph cuts based move-making algorithm for optimization in Markov Random Fields. It contains a copy of the **gco-v3.0 package**. Some of the design were borrowed from the [gco_python](https://github.com/amueller/gco_python) package. However, compared to gco_python: * This package does not depend on Cython. Instead it is implemented using the ctypes library and a C wrapper of the C++ code. * This package is an almost complete wrapper for gco-v3.0, which supports more direct low level control over GCoptimization objects. * This package supports graphs with edges weighted differently. This wrapper is composed of two parts, a C wrapper and a python wrapper. ## Implemented functions * **cut_general_graph**(...) * **cut_grid_graph**(...) * **cut_grid_graph_simple**(...) ## Building wrapper 1. download the last version of [gco-v3.0](http://vision.csd.uwo.ca/code/gco-v3.0.zip) to the _gco_source_ 1. compile gco-v3.0 and the C wrapper using `make` 1. compile test_wrapper using `make test_wrapper` 1. run the C test code `./test_wrapper` (now you have the C wrapper ready) ```bash make download make all make test_wrapper ./test_wrapper ``` The successful run should return: ```bash labels = [ 0 2 2 1 ], energy=19 data energy=15, smooth energy=4 ``` Next test the python wrapper using `python test_examples.py`, if it works fine you are ready to use pygco. To include pygco in your code, simply import pygco module. See the documentation inside code for more details. ## Install wrapper Clone repository and enter folder, then ```bash pip install -r requirements.txt python setup.py install ``` Now it can be also installed from PyPi ```bash pip install gco-wrapper ``` ## Show test results Visualisation of the unary terns for **binary segmentation** ![unary terms](./images/binary_unary.png) **4-connected** components with the initial labeling (left) and estimated labeling with regularisation **1** (middle) and **0** (right) ![labelling](./images/binary_labels-4conn.png) **8-connected** components with the initial labeling (left) and estimated labeling with regularisation **1** (middle) and **0** (right) ![labelling](./images/binary_labels-8conn.png) Visualisation of the unary terns for **3 labels segmentation** ![unary terms](./images/grid_unary.png) with the __initial__ labeling (left) and __estimated__ labeling (right) ![labelling](./images/grid_labels.png) %prep %autosetup -n gco-wrapper-3.0.8 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-gco-wrapper -f filelist.lst %dir %{python3_sitearch}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 17 2023 Python_Bot - 3.0.8-1 - Package Spec generated