Last active
July 23, 2017 01:32
-
-
Save val314159/b84c9cb8e61b9607378e83eff254bcad to your computer and use it in GitHub Desktop.
Install opencv 3.2 plus some other stuff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu | |
RUN apt-get -y update | |
RUN apt-get -y upgrade | |
RUN apt-get -y dist-upgrade | |
RUN apt-get -y autoremove | |
# 2. INSTALL THE DEPENDENCIES | |
# Build tools: | |
RUN apt-get install -y build-essential cmake sudo | |
# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake): | |
RUN apt-get install -y qt5-default libvtk6-dev | |
# Media I/O: | |
RUN apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev | |
# Video I/O: | |
RUN apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev | |
# Parallelism and linear algebra libraries: | |
RUN apt-get install -y libtbb-dev libeigen3-dev | |
# Python: | |
RUN apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy python3-gevent python-gevent | |
RUN apt-get install -y emacs-nox screen tree | |
RUN apt-get install -y python-pip python3-pip | |
RUN pip2 install gevent-websocket | |
RUN pip3 install gevent-websocket | |
# Java: | |
RUN apt-get install -y ant default-jdk | |
# Documentation: | |
RUN apt-get install -y doxygen | |
RUN pip install tensorflow keras h5py matplotlib pillow jupyter ipython==5 sklearn scipy | |
# 3. INSTALL THE LIBRARY (YOU CAN CHANGE '3.2.0' FOR THE LAST STABLE VERSION) | |
RUN apt-get install -y unzip wget | |
RUN wget https://github.com/opencv/opencv/archive/3.2.0.zip | |
RUN unzip 3.2.0.zip | |
RUN rm 3.2.0.zip | |
RUN wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip | |
RUN unzip 3.2.0.zip | |
RUN rm 3.2.0.zip | |
RUN mv opencv-3.2.0 OpenCV | |
WORKDIR /OpenCV | |
RUN mkdir build | |
WORKDIR /OpenCV/build | |
RUN cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF -DOPENCV_EXTRA_MODULES=/opencv_contrib-3.2.0/modules -DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON -DINSTALL_C_EXAMPLES=OFF .. | |
RUN make -j4 | |
RUN make install | |
RUN ldconfig | |
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION | |
# To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# https://raw.githubusercontent.com/milq/milq/master/scripts/bash/install-opencv.sh | |
# docker -w`pwd`/install-opencv-plus.sh:/install-opencv-plus.sh ubuntu bash -c 'sleep 3600000' | |
###################################### | |
# INSTALL OPENCV ON UBUNTU OR DEBIAN # | |
###################################### | |
# | THIS SCRIPT IS TESTED CORRECTLY ON | | |
# |----------------------------------------------------| | |
# | OS | OpenCV | Test | Last test | | |
# |----------------|--------------|------|-------------| | |
# | Ubuntu 16.04.2 | OpenCV 3.2.0 | OK | 20 May 2017 | | |
# | Debian 8.8 | OpenCV 3.2.0 | OK | 20 May 2017 | | |
# | Debian 9.0 | OpenCV 3.2.0 | OK | 25 Jun 2017 | | |
alias sudo='' | |
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE | |
sudo apt-get -y update | |
sudo apt-get -y upgrade | |
sudo apt-get -y dist-upgrade | |
sudo apt-get -y autoremove | |
sudo apt-get install -y sudo | |
# 2. INSTALL THE DEPENDENCIES | |
# Build tools: | |
sudo apt-get install -y build-essential cmake | |
# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake): | |
sudo apt-get install -y qt5-default libvtk6-dev | |
# Media I/O: | |
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev | |
# Video I/O: | |
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev | |
# Parallelism and linear algebra libraries: | |
sudo apt-get install -y libtbb-dev libeigen3-dev | |
# Python: | |
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy | |
# Java: | |
sudo apt-get install -y ant default-jdk | |
# Documentation: | |
sudo apt-get install -y doxygen | |
# 3. INSTALL THE LIBRARY (YOU CAN CHANGE '3.2.0' FOR THE LAST STABLE VERSION) | |
sudo apt-get install -y unzip wget | |
wget https://github.com/opencv/opencv/archive/3.2.0.zip | |
unzip 3.2.0.zip | |
rm 3.2.0.zip | |
wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip | |
unzip 3.2.0.zip | |
rm 3.2.0.zip | |
mv opencv-3.2.0 OpenCV | |
cd OpenCV | |
mkdir build | |
cd build | |
cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF .. | |
make -j4 | |
sudo make install | |
sudo ldconfig | |
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION | |
# To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from bottle import request, Bottle, abort | |
app = Bottle() | |
html='''\ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<script type="text/javascript"> | |
var ws = new WebSocket("ws://localhost:8080/websocket"); | |
ws.onopen = function() { | |
ws.send("Hello, world"); | |
}; | |
ws.onmessage = function (evt) { | |
alert(evt.data); | |
}; | |
</script> | |
</head> | |
</html> | |
''' | |
@app.route('/') | |
def handle_(): | |
return [html] | |
@app.route('/websocket') | |
def handle_websocket(): | |
wsock = request.environ.get('wsgi.websocket') | |
if not wsock: | |
abort(400, 'Expected WebSocket request.') | |
while True: | |
try: | |
message = wsock.receive() | |
wsock.send("Your message was: %r" % message) | |
except WebSocketError: | |
break | |
from gevent.pywsgi import WSGIServer | |
from geventwebsocket import WebSocketError | |
from geventwebsocket.handler import WebSocketHandler | |
server = WSGIServer(("0.0.0.0", 8080), app, | |
handler_class=WebSocketHandler) | |
server.serve_forever() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment