2023.7.06更新
codeblocks安裝opencv
直接放參考鏈接,完成安裝該步驟來,簡單高效!
安裝教程鏈接
有一個問題就是第一次安裝完成后運行時會報確實某些ddl的錯誤,關機重啟就好啦!
嘗試運行
ddl的錯誤解決后可以用以下代碼進行測試,測試通過后基本就ok啦,記得改一下圖片的地址。
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("lena.jpg",0);
if(!img.data)
return -1;
imshow("ahle",img);
waitKey(0);
return 0;
}
-
錯誤2 找不到某個hpp文件,xfeatures2d.hpp
這是因為opencv中缺少這些文件,我們先自己手動下載下來,下載下來的是opencv_contrib文件,里面包含了很多hpp文件,下次缺少的時候直接去找就行,很方便。下載地址如下:
下載鏈接1
下載的時候一定要找到對應的版本,和自己的opencv要一致,我的是opencv4.1.1,我單獨在網上搜的下載地址,下載地址如下
下載地址2
再來一個,這個是其它的
下載地址3
假設缺少的是xfeatures2d.hpp文件,先去D:\opencv_contrib-4.1.1\opencv_contrib-4.1.1\modules\xfeatures2d\include\opencv2路徑里找到features2d文件,把這個文件復制到D:\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\include\opencv2中,注意一點,如果代碼是#include <opencv2/xfeatures2d.hpp>,表示xfeatures2d.hpp在opencv2文件夾下,如果代碼是#include <opencv2/xfeatures2d/xfeatures2d.hpp>表示xfeatures2d.hpp是在opencv2文件夾中的xfeatures2d文件夾中,根據代碼去放置相應的文件。 -
錯誤2 error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
頭文件里添加#include <opencv2/highgui/highgui_c.h>即可。
Opencv版本4.1.1
error: ‘CV_RETR_TREE’ was not declared 和
error: ‘CV_CHAIN_APPROX_SIMPLE’ was not declared解決方法同理。
Grabcut摳圖實踐
- 關于mat數據結構,參考鏈接
- namedWindow(“src”, CV_WINDOW_AUTOSIZE);
//namedWindow()的功能就是新建一個顯示窗口。可以指定窗口的類型
//CV_WINDOW_AUTOSIZE 窗口大小自動適應圖片大小,并且不可手動更改
參考鏈接 - Opencv之鼠標響應setMouseCallback()
參考鏈接 - Rect類
參考鏈接
grabCut代碼復現
參考文章
-
報錯誤:error: ‘vector’ was not declared in this scope|
首先把vector頭文件添加進去,然后在定義的vector變量前添加命名空間,即std::vector vec; -
Opencv之鼠標響應setMouseCallback()
參考鏈接 -
Rect類
參考鏈接文章來源:http://www.zghlxwxcb.cn/news/detail-578691.html
2023.7.08更新
現在開始自己比對著敲grabcut的源代碼啦!文章來源地址http://www.zghlxwxcb.cn/news/detail-578691.html
一些c++語法
- 類中的成員函數:A fun4()const; 其意義上是不能修改所在類的的任何變量。
- mat的創(chuàng)建函數
像素是1*(modelSize*componentsCount)大小,C1表示一通道,64表示每個通道的是64位數,F表示單精度浮點數 - 讀取圖像坐標
cv::mat的成員函數: .at(int y, int x)可以用來存取圖像中對應坐標為(x,y)的元素坐標。但是在使用它時要注意,在編譯期必須要已知圖像的數據類型,這是因為cv::mat可以存放任意數據類型的元素。 - Vec3b就是一個uchar類型的數組,長度為 3
- pano.getMatRef()
pano的類型應該是InputOutputArray類型之類的Mat的基類(cv::InputOutputArray pano),這個函數是將pano內數據提取出來轉換為mat,有點像string類的c_str()吧… - opencv入門基礎
鏈接
到了這里,關于第一次用用Opencv進行圖像處理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!