This project was forked from https://github.com/shuwang127/SRCNN_Cpp, An Open source project of "C++ Implementation of Super-Resolution resizing with Convolutional Neural Network". And this project includes non-OpenCV library name called as ...
- OpenCV4 compatibility updated.
- Supporting macOS universal binary.
- libsrcnn is a stand-alone library that no dependancy with OpenCV.
- it is about 4 times more faster than OpenCV model, and currently it was moved to libsrcnn repository.
Notice: this project contains old version of libsrcnn.removed.
Original source SRCNN has bug at final merge process, and this source code also got same bug, too. Recommend to use my another library based on this project, libsrcnn.
This project is currently discontinued, please check new libsrcnn repository for more faster, and no need to link to OpenCV.
This is an open source project from original of this: SRCNN_Cpp is a C++ Implementation of Image Super-Resolution using SRCNN which is proposed by Chao Dong in 2014.
-
If you want to find the details of SRCNN algorithm, please read the paper:
Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang. Learning a Deep Convolutional Network for Image Super-Resolution, in Proceedings of European Conference on Computer Vision (ECCV), 2014
-
If you want to download the training code(caffe) or test code(Matlab) for SRCNN, please open your browse and visit https://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html for more details.
-
And thank you very much for Chao's work in SRCNN.
- Code modified many things from original SRCNN.
- OpenMP parallel processing, improved performance.
- Supports almost of platform - POSIX compatibled.
- MSYS2 and MinGW-W64 ( for Windows )
- GCC of Linux ( armhf, aarch64, x86 )
- CLANG (llvm) of macOS, suporting universal binary build
- universal build only possible when using static openCV as built as same condition.
Follows original SRCNN_Cpp, and it is released under the GPL v2 License (refer to the LICENSE file for details).
- Windows may need MSYS2 and MinGW-W64.
- You need to install latest version (may 4) of OpenCV to your build environments,
install opencv libraries into your system with one of these:
- MSYS2:
pacman -S /mingw-w64-x86_64-opencv
- Debian:
sudo apt-get install libopencv-dev
- macOS
- Before install Brew :
sudo xcode-select --install sudo xcodebuild -license ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- After installed Brew :
brew update brew install opencv4
- MSYS2:
- If wanna make static binary with OpenCV, it's required manual build.
- It is difficult way and hard to handle, even static binary size is not much suitable for only srcnn.
- Here's way to build static openCV manually,
- Clone or download OpenCV source to you base level directory of this sources.
- Go to opencv, then make a 'build' directory.
- Type like this ( in case of MSYS2+MinGW-W64 )
cmake -G "MSYS Makefiles" -DBUILD_SHARED_LIBS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_FFMPEG=OFF -DWITH_MSMF=OFF -DWITH_VFW=OFF -DWITH_OPENMP=ON ..
- This project doesn't using video decoding, and there's too many erorrs occurs on Video processing source in OpenCV ( damn sucks cmake options, they're useless )
- Then, install compiled openCV to local by
make install
, or edit current Makefile to link with static OpenCV.
- Make a symlink from Makfiles in
makefiles
directory. - Most of POSIX should be used
makefiles/Makefile.default
.- Linux, MSYS2, MinGW-W64
- macOS will be used
makefiles/Makefile.macos
- eg.)
ln -s makefiles/Makefile.default Makefile
- Then, just type
make
.