加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

玩转Python图片处理 (OpenCV-Python )

发布时间:2020-12-16 23:58:12 所属栏目:Python 来源:网络整理
导读:? ? OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉

? ? OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

? ?OpenCV-Python是OpenCV的Python的API接口,它拥有OpenCV C++ API的功能,同时也拥有Python语言的特性,可以做到跨平台使用。但值得注意的是在Python3(目前使用的是Python3.7)里对OpenCV-Python接口的中文支持并不是很友好。

安装:

sudo pip3 install opencv-python

直方图模块安装:

pip3 install matplotlib

简单的读取一张图片:

cv2 imgviewx=cv2.imread( cv2.namedWindow( cv2.imshow( cv2.destroyAllWindows()

其它属性详细介绍:

cv2 imgviewx=cv2.imread( (imgviewx.shape) (imgviewx.size) (imgviewx.dtype) imgviewx1= imgviewx=cv2.bilateralFilter(imgviewx,50,6 font = cv2.FONT_HERSHEY_SIMPLEX imgviewx = cv2.putText(imgviewx,,(10,50),font,1.2,255),5 gx,kx,tx=imgviewx.shape g k range(0,kx): (k>0 k<100 imgviewx[g,k,0]=0 imgviewx[g,1]=255 imgviewx[g,2]=255 imgviewx[g,0] = imgviewx[g,0] imgviewx[g,1] = imgviewx[g,1 imgviewx[g,2] = imgviewx[g,2 imgx=np.zeros([400,600,3 imgx[110:130,1]=np.ones([20,20],np.uint8)*255 cv2.imshow( areax=imgviewx[110:529,778:1200 areax= areax2= imgviewx[110:529,778:1200]= cv2.imshow( h,w,t= maskx=np.zeros([h+2,w+2 cv2.floodFill(imgviewx,maskx,(100,100),255,100,(50,50 b,g,r=cv2.split(imgviewx) cv2.imshow(,b) cv2.imshow( cv2.imshow( imgviewx[:,1]=135 B,R) cv2.imshow( imgviewx=cv2.merge([b,r]) img1=cv2.imread( img2=cv2.imread( (img1.shape, cv2.namedWindow( cv2.imshow( cv2.imshow( imgoperation= imgoperation= cv2.imshow( ved=cv2.VideoCapture() ret,tux= ret== False: cv2.imshow(,tux) hsv=cv2.cvtColor(tux,cv2.COLOR_BGR2HSV) lowx=np.array([37,43,46]) uppx=np.array([77,255 tux2=cv2.inRange(hsv,lowx,uppx) tux3 = cv2.bitwise_and(tux,tux,mask= cv2.imshow( 27==cv2.waitKey(20): cv2.namedWindow( event== ( event== ( cv2.setMouseCallback( t1=cv2.getTickCount() t2= timesx=(t2-t1)/ (%(timesx*1000 cv2.imshow( cv2.imwrite( keyx= keyx==27 ( cv2.destroyAllWindows()

模拟实现一个简单的拍照程序:

cv2 vix=cv2.VideoCapture(0) ret,tu=vix.read() tu1=cv2.flip(tu,1) cv2.imshow(,tu1) 65==cv2.waitKey(10): cv2.imwrite(,tu1) cv2.namedWindow() videox() (cv2.waitKey(0)) cv2.destroyAllWindows()

直方图基本:

cv2 imgx=cv2.cvtColor(imgtu,cv2.COLOR_RGB2GRAY) chanlx=cv2.createCLAHE(clipLimit=30.0,tileGridSize=(8,8 imgtu= cv2.imshow(,imgtu) h,t= rgbx=numpy.zeros([16*16*16,1 bsize=256/16 row col b= g=imgtu[row,1 r=imgtu[row,2 index=numpy.int(b/bsize)*16*16+numpy.int(g/bsize)*16+numpy.int(r/ rgbx[numpy.int(index),0]=rgbx[numpy.int(index),0]+1 img1=cv2.imread( img2=cv2.imread( hist1= hist2= cv2.imshow( cv2.imshow( va1= va2= va3= ( ( ( imgviewx=cv2.imread( cv2.namedWindow( cv2.imshow( compare_ing() cv2.destroyAllWindows()

模板匹配:

cv2 toolx= h,w=img_target.shape[:2] result= min_x,max_x,min_y,max_y= toolx== tl= tl= br=(tl[0]+w,tl[1]+ cv2.rectangle(img_root,tl,br,5 cv2.imshow( imgviewx=cv2.imread( cv2.namedWindow( areax = imgviewx[110:529,778:1200 cv2.imshow( cv2.imshow( cv2.destroyAllWindows()

二值化,黑白图片:

cv2 imgviewx=cv2.imread( cv2.namedWindow( imgviewx2= imgviewx2= ret,imgviewx2=cv2.threshold(imgviewx2,cv2.THRESH_BINARY| imgviewx2=cv2.adaptiveThreshold(imgviewx2,200,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,25,5 cv2.imshow( cv2.imshow( cv2.destroyAllWindows()

?附录:

HSV取值对应表:

树莓派(2018-06-27-raspbian-stretch.img)安装需要的依赖包:

sudo apt-get install libatlas-base-dev

sudo apt-get install libjasper-runtime

sudo pip3 install opencv-contrib-python

sudo apt-get install libhdf5-dev

sudo apt-get install libhdf5-serial-dev

sudo apt install libqtgui4

sudo apt install libqt4-test

sudo apt-get install libcv-dev


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读