python-opencv的学习 环境搭建 基本案例
题目:
背景:在生产汽车轮胎中,会有各种各样的缺陷需要人工检测,现用图像算法代替人工进 行检测。
1根据给出的正常轮胎及有缺陷的轮胎图片识别出轮胎的胎侧缺胶的缺陷类型,并在所给图片中定位缺陷(可用一个矩形框框出)
解决过程
环境搭建
pip install opencv-python
(pip install opencv-contrib-python 【扩展模块】,pip install pytesseract)
什么是opencv(open computer view)
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
安装和配置opencv(mac)
#下载cmake ''' CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 ''' brew insatl cmake #获取opencv源代码 git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git #构建opencv #在源码目录中创建一个临时目录,这里会存放一下cmake编译生成的文件 cd~ / opencv mkdir build #配置 cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. #构建安装 make -j6#并行运行6个作业 sudo make install
manblue@appledeMBP ~ % pip install opencv-python Looking in indexes: http://pypi.douban.com/simple/ Collecting opencv-python Downloading http://pypi.doubanio.com/packages/7c/0b/df5987ee6671eb7645d990b70832780daf0ece89469af0a792d8dcbcfe62/opencv_python-4.2.0.34-cp37-cp37m-macosx_10_9_x86_64.whl (49.1 MB) |████████████████████████████████| 49.1 MB 3.4 MB/s Requirement already satisfied: numpy>=1.14.5 in /usr/local/lib/python3.7/site-packages (from opencv-python) (1.18.2) Installing collected packages: opencv-python Successfully installed opencv-python-4.2.0.34 manblue@appledeMBP ~ % pip install opencv-contrib-python Looking in indexes: http://pypi.douban.com/simple/ Collecting opencv-contrib-python Downloading http://pypi.doubanio.com/packages/ee/9a/ce4d349af0648bb4d98fbb24959b1bd91a2b79e6903d8f25f23ab33a3e2e/opencv_contrib_python-4.2.0.34-cp37-cp37m-macosx_10_9_x86_64.whl (60.3 MB) |████████████████████████████████| 60.3 MB 352 kB/s Requirement already satisfied: numpy>=1.14.5 in /usr/local/lib/python3.7/site-packages (from opencv-contrib-python) (1.18.2) Installing collected packages: opencv-contrib-python Successfully installed opencv-contrib-python-4.2.0.34 manblue@appledeMBP ~ % pip install pytesseract Looking in indexes: http://pypi.douban.com/simple/ Collecting pytesseract Downloading http://pypi.doubanio.com/packages/3c/1d/2993a05adb253902a372d7886733ae7688615cf000c54fe3c075892cb5d4/pytesseract-0.3.3.tar.gz (13 kB) Collecting Pillow Downloading http://pypi.doubanio.com/packages/43/0e/db0117d3c810cc5c5d04802988be8983f4f51a78ae65d53bddcff68bf692/Pillow-7.1.1-cp37-cp37m-macosx_10_10_x86_64.whl (2.2 MB) |████████████████████████████████| 2.2 MB 43 kB/s Building wheels for collected packages: pytesseract Building wheel for pytesseract (setup.py) ... done Created wheel for pytesseract: filename=pytesseract-0.3.3-py2.py3-none-any.whl size=13399 sha256=3434014f14281e70903194b4aa9ab5b0c71b2d0c8bfad16e6665247dffd8be31 Stored in directory: /Users/manblue/Library/Caches/pip/wheels/82/94/6b/d92b5802d82860e110c9d757c5c5bb6658cb9aa8268e415c7c Successfully built pytesseract Installing collected packages: Pillow, pytesseract Successfully installed Pillow-7.1.1 pytesseract-0.3.3
##知识点学习:python-opencv学习
图像的读取 展示
img=cv2.imread('image/lenacolor.png',cv2.IMREAD_UNCHANGED) ''' 原图展示 cv2.IMREAD_UNCHANGED 灰度图展示 cv2.IMREAD_GRAYSCALE 彩色图展示 cv2.IMREAD_COLOR ''' #2、图片保存 cv2.imwrite('image/gray_test.jpg',img) #3、图片展示 cv2.imshow('original',img) #4、图片暂停展示 cv2.waitKey(num)
视频展示
import cv2 #捕捉视频 cap = cv2.VideoCapture('vedio/重庆.m4v') #逐桢读取 while True: successs,img = cap.read() cv2.imshow('vedio',img) #按q结束 if cv2.waitKey(1) & 0xFF == ord('q'): break
网络摄像头
import cv2 #0表示默认摄像头 cap = cv2.VideoCapture(0) #根据id改变视频显示的各种参数的参数 cap.set(3,640)#3是wide cap.set(4,480)#4是height cap.set(10,100)#10是亮度 #逐桢读取 while True: successs,img = cap.read() cv2.imshow('vedio',img) #按q结束 if cv2.waitKey(1) & 0xFF == ord('q'): break
图片操作
import cv2 import numpy as np img1 = cv2.imread('image/正常图片.jpg') img_2 = cv2.imread('image/胎侧缺胶1.jpg') #灰化图像 imgGray =