国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

EmguCV學習——簡單使用

2019-11-14 14:06:35
字體:
來源:轉載
供稿:網友

關于EmguCV我就不多說了,是對應于OpenCV的一套net庫。

公司是視覺方面的業務,我又不會c++(好想會啊,正在學習中)。由于各種需求,自己覺得對c++不是特別感冒,所以選用了net下的opencv的封裝EmguCV。python也有對應的opencv的庫。無奈我python還處于入門階段。

不廢話,先說Emgucv的配置,我是看園子里的博客配置的,附上鏈接:

 http://www.survivalescaperooms.com/bomo/archive/2013/03/28/2986113.html

下面先演示一下簡單的顯示圖片及視頻。

視頻需要安裝ffshow解碼器,自行百度下載

EmguCV顯示圖片:

 

 

1 var img = CvInvoke.cvLoadImage(imgname, Emgu.CV.CvEnum.LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_ANYCOLOR);2 CvInvoke.cvNamedWindow("mainWin");3 if (img == null)4 {5     CvInvoke.cvReleaseImage(ref img);6     continue;7 }8 CvInvoke.cvShowImage("mainWin", img);

EmguCV顯示視頻:

 1 IntPtr CatchFrame = CvInvoke.cvCreateFileCapture(path.ToString()); 2 // 得到總幀數 3 var count = CvInvoke.cvGetCapturePRoperty(CatchFrame, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_COUNT); 4 // 視頻寬度 5 int wd = (int)CvInvoke.cvGetCaptureProperty(CatchFrame, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH); 6 // 視頻高度 7 int hg = (int)CvInvoke.cvGetCaptureProperty(CatchFrame, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT); 8 // 當前幀位置 9 //CvInvoke.cvGetCaptureProperty(CatchFrame, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_POS_FRAMES);10 // 幀頻11 CvInvoke.cvGetCaptureProperty(CatchFrame, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FPS);12 13 IntPtr FrameImg;14 int i = 0;15 CvInvoke.cvNamedWindow("mainWin");16 //灰度圖17 //IntPtr grayImg = CvInvoke.cvCreateImage(new Size(wd,hg),Emgu.CV.CvEnum.ipL_DEPTH.IPL_DEPTH_8U,1);18 while ((FrameImg = CvInvoke.cvQueryFrame(CatchFrame)) != IntPtr.Zero)19 {20     //轉換為灰度圖21     //CvInvoke.cvCvtColor(FrameImg, grayImg, Emgu.CV.CvEnum.COLOR_CONVERSION.BGR2GRAY);22     //EmguCV中的Image 轉換為 C#中的Bitmap23     //Image<Bgr, byte> FramePic = new Image<Bgr, byte>(wd, hg);24     //CvInvoke.cvCopy(FrameImg, FramePic, IntPtr.Zero);25     //Bitmap bt = new Bitmap(FramePic.ToBitmap());26     //FramePic.Dispose();27     CvInvoke.cvShowImage("mainWin", FrameImg );28 }29 CvInvoke.cvReleaseImage(ref FrameImg );30 CvInvoke.cvDestroyWindow("mainWin");

另附上python的調用opencv的代碼

python需要安裝numpy和scipy!

顯示圖片代碼:

 1 import cv2 2 import numpy as np 3 #讀取圖片 4 img = cv2.imread("./IMGS/1.jpg") 5 #實例化8位圖 6 emptyImage = np.zeros(img.shape, np.uint8) 7 emptyImage2 = img.copy() 8 #灰度圖 9 emptyImage3 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)10 #顯示圖片11 cv2.imshow("emptyImage",emptyImage)12 cv2.imshow("emptyImage2",emptyImage2)13 cv2.imshow("emptyImage3",emptyImage3)14 cv2.imshow("img",img)15 #保存圖片 質量為5 和 10016 cv2.imwrite("./1.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),5])17 cv2.imwrite("./2.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),100])18 #png壓縮大小19 cv2.imwrite("./3.png",img,[int(cv2.IMWRITE_PNG_COMPRESSION),0])20 cv2.imwrite("./4.png",img,[int(cv2.IMWRITE_PNG_COMPRESSION),9])21 22 #cv2.namedWindow("image")23 #cv2.imshow("image",image)24 cv2.waitKey(0)25 cv2.destroyAllWindows()

播放視頻,并把每幀保存成圖片:

 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Author: 禾子三金 4 # @Date:   2015-08-05 17:45:45 5 # @Last Modified by:   禾子三金 6 # @Last Modified time: 2015-08-13 15:41:00 7 import cv2 8  9 videoCapture = cv2.VideoCapture("./cs.mp4",'utf-8')10 11 fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS)12 size = (int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))13 14 success, frame = videoCapture.read()15 i = 016 while success:17     cv2.imshow("video",frame)18     cv2.waitKey(1000/int(fps))19     cv2.imwrite("./img/%d.jpg" % i,frame)20     i = i + 121     success, frame = videoCapture.read()

以上代碼都是我自己網上找的demo或者自己寫的簡單例子,代碼粗糙,嘿嘿。

              我堅信:種一棵樹最好的時間是十年前,其次是現在。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孟州市| 新和县| 景洪市| 仁怀市| 崇仁县| 仪陇县| 分宜县| 云和县| 维西| 富民县| 临海市| 和硕县| 马龙县| 道孚县| 富平县| 元阳县| 济阳县| 桦川县| 应城市| 莆田市| 海晏县| 牟定县| 安新县| 章丘市| 防城港市| 桑植县| 绍兴县| 南雄市| 那曲县| 禄丰县| 屯昌县| 潼关县| 鄂伦春自治旗| 锡林浩特市| 牡丹江市| 霍林郭勒市| 称多县| 上高县| 邵东县| 左贡县| 新田县|