opencv


原文链接: opencv

精简安装Opencv

cmake .. -G "Unix Makefiles" \
    -DBUILD_DOCS=off \
    -DBUILD_SHARED_LIBS=on \
    -DBUILD_FAT_JAVA_LIB=off \
    -DBUILD_TESTS=off \
    -DBUILD_TIFF=on \
    -DBUILD_opencv_apps=off \
    -DBUILD_opencv_calib3d=off \
    -DBUILD_opencv_contrib=off \
    -DBUILD_opencv_features2d=off \
    -DBUILD_opencv_flann=off \
    -DBUILD_opencv_gpu=off \
    -DBUILD_opencv_java=off \
    -DBUILD_opencv_legacy=off \
    -DBUILD_opencv_ml=off \
    -DBUILD_opencv_nonfree=off \
    -DBUILD_opencv_objdetect=off \
    -DBUILD_opencv_ocl=off \
    -DBUILD_opencv_photo=off \
    -DBUILD_opencv_python=off \
    -DBUILD_opencv_stitching=off \
    -DBUILD_opencv_superres=off \
    -DBUILD_opencv_ts=off \
    -DBUILD_opencv_video=off \
    -DBUILD_opencv_videostab=off \
    -DBUILD_opencv_world=off \
    -DBUILD_opencv_lengcy=off \
    -DBUILD_opencv_lengcy=off \
    -DWITH_1394=off \
    -DWITH_EIGEN=off \
    -DWITH_FFMPEG=off \
    -DWITH_GIGEAPI=off \
    -DWITH_GSTREAMER=off \
    -DWITH_GTK=off \
    -DWITH_PVAPI=off \
    -DWITH_V4L=off \
    -DWITH_LIBV4L=off \
    -DWITH_CUDA=off \
    -DWITH_CUFFT=off \
    -DWITH_OPENCL=off \
    -DWITH_OPENCLAMDBLAS=off \
    -DWITH_OPENCLAMDFFT=off

opencv3.4.0

请到 OpenCV 的官方网站:http://opencv.org/releases.html 下载 Opencv3.4.0

wget https://github.com/Itseez/opencv/archive/3.4.0.zip

mkdir build && cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local/opencv \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON .. 
    
make -j $(nproc)
        sudo make install
		sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
		sudo ldconfig

注意: ubuntu14.04 由于使用的是gcc4.8 所以是不支持opencv3.4.2 一定要用3.4.0

观察 opencv/3rdparty/ippicv下的cmake文件
https://github.com/opencv/opencv/blob/3.4.1/3rdparty/ippicv/ippicv.cmake),
得知文件下载路径为
https://raw.githubusercontent.com/opencv/opencv_3rdparty/dfe3162c237af211e98b8960018b564bc209261d/ippicv/ippicv_2017u3_lnx_intel64_general_20170822.tgz
下载后把tgz文件
拷贝到opnecv-3.4.1/3rdparty/ippicv/downloads/4e0352ce96473837b1d671ce87f17359目录下,运行cmake时就会自动找到这个文件

————————————————
版权声明:本文为CSDN博主「liutao的呢称」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/imliutao2/article/details/80170846

在configure过程中过程中,可能会出现下面的错误:

– ICV: Downloading ippicv_linux_20151201.tgz…

这个东西下载很慢,有时候是因为连接超时出错,所以直接下载我的吧。

链接:http://pan.baidu.com/s/1boVwvV5 密码:nr7w
替换掉 opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件,然后再次cmake-gui ..即可

install opencv2

#!/bin/bash


system_platform=$(uname)
distribution_name=$(lsb_release -is)
release_version=$(lsb_release -rs)

# if the linux distribution is LINUX
if [ "$system_platform" = "Linux" ]
then
	# check whether the distribution is Ubuntu
	if [ "$distribution_name" = "Ubuntu" ]
	then
		# First make sure everything is up to date
		sudo apt-get update
		sudo apt-get upgrade

		sudo apt-get install -y build-essential
		sudo apt-get install -y cmake
		sudo apt-get install -y libgtk2.0-dev
		sudo apt-get install -y pkg-config
		sudo apt-get install -y python-numpy python-dev
		sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev
		sudo apt-get install -y libjpeg-dev libpng-dev libjasper-dev
		sudo apt-get install -y qt5-default

		if [ "$release_version" = "16.04" ]
		then
			sudo apt-get install -y libtiff5-dev
		elif [ "$release_version" = "14.04" ]
		then
			sudo apt-get install -y libtiff4-dev
		fi

		sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm \
								 libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev \
								 libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev \
								 libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev \
								 libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev \
								 libvorbis-dev libxvidcore-dev x264 v4l-utils

		git clone https://github.com/opencv/opencv.git
		cd opencv 
		git checkout 2.4.13

		mkdir build
		cd build
 
		# compile and install
		cmake -G "Unix Makefiles" -DCMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_TBB=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DWITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -DWITH_QT=ON -DWITH_OPENGL=ON -DBUILD_FAT_JAVA_LIB=ON -DINSTALL_TO_MANGLED_PATHS=ON -DINSTALL_CREATE_DISTRIB=ON -DINSTALL_TESTS=ON -DENABLE_FAST_MATH=ON -DWITH_IMAGEIO=ON -DBUILD_SHARED_LIBS=OFF -DWITH_GSTREAMER=ON ..
		make all -j4 # 4 cores
		sudo make install
		sudo ldconfig

		cd ../../
		rm -rf opencv
		
		fi
elif [ "$system_platform" = "Darwin" ]
then
	echo "OSX"
else
	echo "Window"
fi

install opencv3

arch=$(uname -m)#!/bin/bash


system_platform=$(uname)
distribution_name=$(lsb_release -is)
release_version=$(lsb_release -rs)

# if the linux distribution is LINUX
if [ "$system_platform" = "Linux" ]
then
	# check whether the distribution is Ubuntu
	if [ "$distribution_name" = "Ubuntu" ]
	then
		# First make sure everything is up to date
		sudo apt-get -y update
		sudo apt-get -y upgrade

		sudo apt-get -y remove x264 libx264-dev
 
		sudo apt-get install -y build-essential checkinstall cmake pkg-config yasm
		sudo apt-get install -y git gfortran
		sudo apt-get install -y libjpeg8-dev libjasper-dev libpng12-dev

		if [ "$release_version" = "16.04" ]
		then
			sudo apt-get install -y libtiff5-dev
		elif [ "$release_version" = "14.04" ]
		then
			sudo apt-get install -y libtiff4-dev
		fi
		 
		sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
		sudo apt-get install -y libxine2-dev libv4l-dev
		sudo apt-get install -y libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
		sudo apt-get install -y qt5-default libgtk2.0-dev libtbb-dev
		sudo apt-get install -y libatlas-base-dev
		sudo apt-get install -y libfaac-dev libmp3lame-dev libtheora-dev
		sudo apt-get install -y libvorbis-dev libxvidcore-dev
		sudo apt-get install -y libopencore-amrnb-dev libopencore-amrwb-dev
		sudo apt-get install -y x264 v4l-utils
		 
		# Optional dependencies
		sudo apt-get install -y libprotobuf-dev protobuf-compiler
		sudo apt-get install -y libgoogle-glog-dev libgflags-dev
		sudo apt-get install -y libgphoto2-dev libeigen3-dev libhdf5-dev

		# Install OpenCV for python
		sudo apt-get install -y python-dev python-pip python3-dev python3-pip
		sudo -H pip2 install -U pip numpy
		sudo -H pip3 install -U pip numpy
		
		sudo pip install opencv-python
		sudo pip3 install opencv-python

		git clone https://github.com/opencv/opencv.git
		cd opencv 
		git checkout 3.4.0

		git clone https://github.com/opencv/opencv_contrib.git
		cd opencv_contrib
		git checkout 3.4.0
		cd ..

		mkdir build
		cd build
 
 # aria2c -c https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_lnx_intel64_general_20180518.tgz
		# compile and install
		cmake -D CMAKE_BUILD_TYPE=RELEASE \
		      -D CMAKE_INSTALL_PREFIX=/usr/local \
		      -D INSTALL_C_EXAMPLES=ON \
		      -D INSTALL_PYTHON_EXAMPLES=ON \
              -D WITH_IPP=OFF \
		      -D WITH_TBB=ON \
		      -D WITH_V4L=ON \
		      -D WITH_QT=ON \
		      -D WITH_OPENGL=ON \
		      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
		      -D BUILD_EXAMPLES=ON ..
		
		make all -j$(noproc) # 4 cores
		sudo make install
		sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
		sudo sh -c 'echo "/usr/local/lib/x86_64-linux-gnu" >> /etc/ld.so.conf.d/opencv.conf'
        /usr/local/lib/x86_64-linux-gnu
		sudo ldconfig

		cd ../../
		rm -rf opencv/
	fi
elif [ "$system_platform" = "Darwin" ]
then
	echo "OSX"
	# Install homebrew
	/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
	brew update
	# Add Homebrew path in PATH
	echo "# Homebrew" >> ~/.bash_profile
	echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
	source ~/.bash_profile
	brew brew tap homebrew/science
 	
 	# Install python
 	brew install python python3
 	brew link python
	brew link python3
	brew upgrade python
	brew upgrade python3

	echo "Expected Python2 location /usr/local/bin/python2"
	which python2  # it should output /usr/local/bin/python2
	echo "Expected Python3 location /usr/local/bin/python2"
	which python3  # it should output /usr/local/bin/python3

	echo "export PATH=/usr/local/opt/python/libexec/bin:$PATH" >> ~/.bash_profile

	# install opencv3
	brew install opencv

	# linking opencv3 to python
	echo /usr/local/opt/opencv/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth
	echo /usr/local/opt/opencv/lib/python3.6/site-packages >> /usr/local/lib/python3.6/site-packages/opencv3.pth

else
	echo "Window"
fi

————————————————
版权声明:本文为CSDN博主「RUN_BUDDY」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hh5945/article/details/53515564

非常棒!!!一次不太成功的项目实战:HOG特征+SVM实现交通标志的检测 - Meringue's Blog - CSDN博客

Opencv4.0 中文手册

opencv(二)——imgproc

图像像素读写

import cv2 as cv

src = cv.imread("./test.png")
h, w, ch = src.shape
print("h , w, ch", h, w, ch)
for row in range(h):
    for col in range(w):
        b, g, r = src[row, col]
        b = 255 - b
        g = 255 - g
        r = 255 - r
        src[row, col] = [b, g, r]
cv.imshow("output", src)

图像像素值统计

import cv2 as cv
import numpy as np

src = cv.imread("./test.png", cv.IMREAD_GRAYSCALE)
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

min, max, minLoc, maxLoc = cv.minMaxLoc(src)
print("min: %.2f, max: %.2f"% (min, max))
print("min loc: ", minLoc)
print("max loc: ", maxLoc)

means, stddev = cv.meanStdDev(src)
print("mean: %.2f, stddev: %.2f"% (means, stddev))
src[np.where(src < means)] = 0
src[np.where(src > means)] = 255
cv.imshow("binary", src)

cv.waitKey(0)
cv.destroyAllWindows()

012 视频读写

import cv2 as cv
import numpy as np


capture = cv.VideoCapture("./test.avi")
# capture = cv.VideoCapture(0) 打开摄像头
height = capture.get(cv.CAP_PROP_FRAME_HEIGHT)
width = capture.get(cv.CAP_PROP_FRAME_WIDTH)
count = capture.get(cv.CAP_PROP_FRAME_COUNT)
fps = capture.get(cv.CAP_PROP_FPS)
print(height, width, count, fps)
out = cv.VideoWriter("./test_cp.avi", cv.VideoWriter_fourcc('D', 'I', 'V', 'X'), 15,
                     (np.int(width), np.int(height)), True)
while True:
    ret, frame = capture.read()
    if ret is True:
        cv.imshow("video-input", frame)
        out.write(frame)
        c = cv.waitKey(50)
        if c == 27: # ESC
            break
    else:
        break

capture.release()
out.release()

绘制几何形状

import cv2 as cv
import numpy as np

image = np.zeros((512, 512, 3), dtype=np.uint8)

cv.rectangle(image, (100, 100), (300, 300), (255, 0, 0), 2, cv.LINE_8, 0)
cv.circle(image, (256, 256), 50, (0, 0, 255), 2, cv.LINE_8, 0)
cv.ellipse(image, (256, 256), (150, 50), 360, 0, 360, (0, 255, 0), 2, cv.LINE_8, 0)
cv.imshow("image", image)

075 图像修复

import cv2 as cv

src = cv.imread("master2.jpg")
cv.imshow("watermark image", src)
# 提取划痕
hsv = cv.cvtColor(src, cv.COLOR_BGR2HSV)
mask = cv.inRange(hsv, (100, 43, 46), (124, 255, 255))
cv.imshow("mask", mask)
cv.imwrite("mask.png", mask)

# 消除
se = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
mask = cv.dilate(mask, se)

dst_TELEA = cv2.inpaint(img,mask,3,cv2.INPAINT_TELEA)
dst_NS = cv2.inpaint(img,mask,3,cv2.INPAINT_NS)


result = cv.inpaint(src, mask, 3, cv.INPAINT_TELEA)
cv.imshow("result", result)
cv.imwrite("result.png", result)
cv.waitKey(0)
cv.destroyAllWindows()

————————————————
版权声明:本文为CSDN博主「10km」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/10km/article/details/72972844

cmake . -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$install_path

-DBZIP2_LIBRARIES=$BZIP2_INSTALL_PATH/lib/libbz2.a \
-DBUILD_DOCS=off \
-DBUILD_SHARED_LIBS=off \   # 指定编译静态库,默认编译动态库(.so,.dll)
-DBUILD_FAT_JAVA_LIB=off \
-DBUILD_TESTS=off \
-DBUILD_TIFF=on \           # 编译3rdparty/libtiff项目
-DBUILD_JASPER=on \         # 编译3rdparty/libjasper项目用于jpeg2000图像编解码
-DBUILD_JPEG=on \           # 编译3rdparty/libjpeg项目用于jpeg图像编解码
-DBUILD_OPENEXR=on \        # 编译3rdparty/openexr项目
-DBUILD_PNG=on \            # 编译3rdparty/libpng项目用于png图像编解码
-DBUILD_TIFF=on \           # 编译3rdparty/libtiff项目用于tiff图像编解码
-DBUILD_ZLIB=on \           # 编译3rdparty/zlib项目
-DBUILD_opencv_apps=off \   # 以下BUILD_opencv_XXXX选项用于选择或反选指定的opencv模块
-DBUILD_opencv_calib3d=off \
-DBUILD_opencv_contrib=off \
-DBUILD_opencv_features2d=off \
-DBUILD_opencv_flann=off \
-DBUILD_opencv_gpu=off \
-DBUILD_opencv_java=off \
-DBUILD_opencv_legacy=off \
-DBUILD_opencv_ml=off \
-DBUILD_opencv_nonfree=off \
-DBUILD_opencv_objdetect=off \
-DBUILD_opencv_ocl=off \
-DBUILD_opencv_photo=off \
-DBUILD_opencv_python=off \
-DBUILD_opencv_stitching=off \
-DBUILD_opencv_superres=off \
-DBUILD_opencv_ts=off \
-DBUILD_opencv_video=off \
-DBUILD_opencv_videostab=off \
-DBUILD_opencv_world=off \
-DBUILD_opencv_lengcy=off \
-DBUILD_opencv_lengcy=off \
-DWITH_1394=off \
-DWITH_EIGEN=off \
-DWITH_FFMPEG=off \
-DWITH_GIGEAPI=off \
-DWITH_GSTREAMER=off \
-DWITH_GTK=off \
-DWITH_PVAPI=off \
-DWITH_V4L=off \
-DWITH_LIBV4L=off \
-DWITH_CUDA=off \
-DWITH_CUFFT=off \
-DWITH_OPENCL=off \
-DWITH_OPENCLAMDBLAS=off \
-DWITH_OPENCLAMDFFT=off

————————————————
版权声明:本文为CSDN博主「10km」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/10km/article/details/72972844

`