導航:首頁 > 編程語言 > opencv編程實例

opencv編程實例

發布時間:2023-04-29 10:57:09

1. 基於opencv的c++編程問題。怎麼將視頻中的物體框選出來,再根據大小進行分割輸出即選出需要大

我靠很早以前我此備大玩過opencv,英特爾森豎支持的一個開源圖形庫。裡面有好滾讓多demo的,我記得有一個關於模式識別的demo,裡面有關於畫線切割的代碼

2. 如何從入門開始學習OpenCV

如何從入門開始學習OpenCV
OpenCV只是個lib,它既不是軟體、也不是編程語言,所以我覺得從頭到尾按照教程來看一遍可能會存在學習枯燥、無的放矢的局面。

最好的方法是帶著問題去學,先從最簡單的地方入手,比如調用OpenCV的GUI界面來調節一幅圖像的灰度,再復雜些可以利用滑鼠交互來實現PS的魔棒效果(分水嶺演算法)等等,這些網上都有很多現成的代碼來學習,OpenCV 中文論壇上也有不少大牛來回答問題。

單純的學習OpenCV的人不多,學習OpenCV只是為了更方便的編程,所以某種角度來看

OpenCV只是把鋒利的快刀,用刀本身不是目的,用刀切出有型的菜才是目的。

如果沒有編程語言的要求,建議從Python 2.7 +OpenCV 2.4X 入手,為解決問題而思考,有種用Matlab的暢快感。
《Learning OpenCV》是本好書,可以在入門後作為工具書查閱。

3. opencv編程顯示圖像, 「cvLoadImage」: 用於調用的參數太少,該怎麼改

OpenCV

整個項目的結構圖:

編寫DetectFaceDemo.java,代碼如下:

[java] view
plainprint?

package com.njupt.zhb.test;

import org.opencv.core.Core;

import org.opencv.core.Mat;

import org.opencv.core.MatOfRect;

import org.opencv.core.Point;

import org.opencv.core.Rect;

import org.opencv.core.Scalar;

import org.opencv.highgui.Highgui;

import org.opencv.objdetect.CascadeClassifier;

//

// Detects faces in an image, draws boxes around them, and writes the results

// to "faceDetection.png".

//

public class DetectFaceDemo {

public void run() {

System.out.println("\nRunning DetectFaceDemo");

System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());

// Create a face detector from the cascade file in the resources

// directory.

//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());

/蘆稿/Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());

//注意:源程陪拍孝序的賀豎路徑會多列印一個『/』,因此總是出現如下錯誤

/*

* Detected 0 faces Writing faceDetection.png libpng warning: Image

* width is zero in IHDR libpng warning: Image height is zero in IHDR

* libpng error: Invalid IHDR data

*/

//因此,我們將第一個字元去掉

String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);

CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);

Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));

// Detect faces in the image.

// MatOfRect is a special container class for Rect.

MatOfRect faceDetections = new MatOfRect();

faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

// Draw a bounding box around each face.

for (Rect rect : faceDetections.toArray()) {

Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));

}

// Save the visualized detection.

String filename = "faceDetection.png";

System.out.println(String.format("Writing %s", filename));

Highgui.imwrite(filename, image);

}

}
package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;

//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路徑會多列印一個『/』,因此總是出現如下錯誤
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我們將第一個字元去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}

// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}

3.編寫測試類:

[java] view
plainprint?

package com.njupt.zhb.test;

public class TestMain {

public static void main(String[] args) {

System.out.println("Hello, OpenCV");

// Load the native library.

System.loadLibrary("opencv_java246");

new DetectFaceDemo().run();

}

}

//運行結果:

//Hello, OpenCV

//

//Running DetectFaceDemo

///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml

//Detected 8 faces

//Writing faceDetection.png
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//運行結果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png

4. opencv圖像處理編程實例怎麼樣

最重要的就是理論和實踐並重。盡量對一些基礎的圖昌畢叢像處理操作,都自己用程序寫一遍,跑一遍。盡量多試錯。剛開始的時候犯錯並改正就是最好的學習方式。有一些資料推薦你可以看看,首推毛星雲的CSDN博客系列和他的書耐櫻《opencv3編程入門》。如果英文比數好較好的話,官方教程也非常好。在國內改有很多opencv方面的教程和博客,多用搜索工具。最後說一句,還是要多動手去寫程序。

5. OPENCV庫,編程使用OPENCV讀取tif格式的影像時,想要讀取一個位深depth為16的圖像,獲取它的灰度值。

IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
其中flag選中CV_LOAD_IMAGE_ANYDEPTH,則輸入圖像格伏咐野式可以為8位無符號,16位無符號,32位有符缺喊號簡脊或者32位浮點型

6. 急求opencv編程 :讀取圖像RGB值並保存在一位數組中

s=cvGet2D(img,i,j);//訪問RGB圖褲梁像img圖像的i行j列元素

B G R的值分別為s.val[0] s.val[1] s.val[2]
再分別賦胡清運正蠢值給數組就ok

7. opencv編程中求近似兩條平行線的中線,但老是出現內存出錯的情況,特求助於大俠了

1 hough變團團換獲取直線,可以得到兩條直森核線首尾兩點坐標
2 根據坐標計算直線斜率,然後推算中軸線斜率此或掘
3 根據直線坐標計算它們的交點,然後有了交點和中軸線斜率,就出來結果了。

8. 《OpenCV實例精解OpenCVByExample》pdf下載在線閱讀,求百度網盤雲資源

《OpenCV實例精解》([美] 普拉蒂克·喬希)電子書網盤下載免拍明費在線閱讀

資源鏈接:

鏈接: https://pan..com/s/11MQ4MzQM9HVfo2pl28cGsw

提取碼: mizt

書名:OpenCV實例精解

作者:[美] 普拉蒂克·喬希

譯者:呆萌院長

出版社:機械工業出版社

出版年份:2016-8-1

頁數:212

內容簡介唯賀慎:

OpenCV是一個開源的計算機視覺庫,在計算機視覺的開發中扮演著重要的角色。它為計算機視覺應用開發提供了靈活、功能強大的開發介面,使其成為計算機視覺專業人員所依賴的重要開發工具。

本書首先介紹計算機視覺中的各個領域和在C++中相關的OpenCV功能。每個章節都包含真實世界的例子和示例代碼,可以幫助你輕松地掌握主題,並了解它們在現實生活中的應用。全書自始至終都在力爭使用簡潔的語言、清晰的格式以及實踐性很強的示例項目來教你如何在C++中使用OpenCV,並建立各種應用程序。

無論你是對計算機視覺一無所知,還是對此已有基本的了解,本書都將通過一些真實世界的例子和項目來引導你理解OpenCV的概念和演算法。

作者簡介:

Prateek Joshi 計算機視覺專家,曾任職於NVIDIA、微軟、高通等公司,其研究方向為基於內容的分析和深度學習。他在計算機視覺領域已經斬獲多個專利指敬,也贏得過很多關於圖像識別技術的編程比賽。他還是《OpenCV with Python By Example》一書的作者。

David Millan Escriva; 有超過13年的IT工作經驗和9年以上的計算機視覺領域從業經驗,在不同的項目和初創企業工作過,並一直在工作中運用計算機視覺、光學字元識別、圖像識別方面的知識。他是DamilesBlog (http://blog.damiles.com)的作者,還是《Mastering OpenCV with Practical Computer Vision Projects Book》一書的合著者。

Vinicius GodoyPUCPR的計算機圖形學教授、Blackmuppet公司的聯合創始人。他感興趣的領域包括圖像處理、設計模式和多線程應用程序。

9. VB.Net可以和OPENCV編程嗎。做一些抓圓,抓直線的例子。有opencv的實例嗎, 聯系下!

可以OpenCV編程,不過網上樣例實在是太少了,我建議使用Halcon,我現在就用這個,還是不錯的

10. 怎麼用OpenCV編程實現輸出白色像素點的坐標值

同學,你這個標題和內容完全是兩個問題了旁搜。光實現坐標值輸出簡單的很
p_iplImg=cvLoadImage(p_cImgName,1); //p_iplImg表示輪廓圖
前提為二值圖 ,不是二值圖中間請加二值化
for (int i=0;i<p_iplImg->height;i++)
{
for (int j=0;j<p_iplImg->widthStep;j++)
{
if (p_iplImg->imageData[i*p_iplImg->widthStep+j] == 255)
{
cout << "坐標為 " << i << j <<endl;
}
}
}
想用這個輪廓把原來JPG彩色圖像中的物體圈出來,並且把原圖像背景變成白色
這個功能請參考
CvMemStorage *storage1 = cvCreateMemStorage(0);
CvSeq *contour1 = 0;
cvFindContours( p_iplDestImg, storage1, &contour1, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));//得到輪廓
cvDrawContours(p_iplDestImg, contour1, CV_RGB(255,255,255), CV_RGB(255,255,255), 2, CV_FILLED, 8, cvPoint(0,0));//在圖像中圈出來
//把不在圈內的像素值配漏全部設為運賣歷255就是白色

閱讀全文

與opencv編程實例相關的資料

熱點內容
單片機的反向編譯 瀏覽:459
subsample演算法 瀏覽:895
蘋果免費看書app哪個最好 瀏覽:881
c語言加密怎麼弄 瀏覽:838
c語言編譯的錯誤提示 瀏覽:765
驗機蘋果app哪個最好 瀏覽:664
光遇國際服安卓如何購買禮包 瀏覽:53
163app怎麼下載 瀏覽:245
電腦程序員下場 瀏覽:43
編譯原理ll1文法判斷 瀏覽:725
qt用vs2015編譯 瀏覽:549
結婚日子最好的演算法 瀏覽:792
安卓怎麼把數據傳到蘋果里 瀏覽:502
編譯器標識 瀏覽:790
編程珠璣第三章 瀏覽:783
windows如何開啟tftp伺服器 瀏覽:108
歐姆龍plc編程指令表 瀏覽:187
程序員遠程收入不穩定 瀏覽:861
演算法原理怎麼寫 瀏覽:470
有個動漫女主藍頭發是程序員 瀏覽:999