圖像處理領(lǐng)域,有一個(gè)非常重要的名詞ROI。

什么是ROI?

它的英文全稱是Region Of Interest,對應(yīng)的中文解釋就是感興趣區(qū)域。

感興趣區(qū)域,就是我們從圖像中選擇一個(gè)圖像區(qū)域,這個(gè)區(qū)域就是圖像分析所關(guān)注的焦點(diǎn)。我們?nèi)Χㄟ@個(gè)區(qū)域,那么我們要處理的圖像就從大圖像變?yōu)橐粋€(gè)小圖像區(qū)域了,這樣以便進(jìn)行進(jìn)一步處理,可以大大減小處理時(shí)間。

定義ROI區(qū)域有兩種方法:

第一種,指定矩形的坐標(biāo),并且規(guī)定好他的長寬。

Mat img = imread("1.jpg");Mat roi = img(Rect(500, 200, 100, 300));//Rect四個(gè)形參分別是:x坐標(biāo),y坐標(biāo),長,高;注意(x,y)指的是矩形的左上角點(diǎn)

第二種,指定感興趣的行或列的范圍。

Mat img = imread("1.jpg");Mat roi = img(Range(250, 250 + 100), Range(200, 200 + 100));//Range兩個(gè)形參分別是:起始行或列,起始行或列+偏移量

簡單看一下ROI區(qū)域的使用方法,下面的程序定義了ROI,并且我用綠框標(biāo)記出來。

#include<opencv2\opencv.hpp>   #include<opencv2\highgui\highgui.hpp>using namespace std;using namespace cv;int main(){
    Mat srcImage = imread("lol0.jpg");    if (!srcImage.data)
    {        cout << "讀取原始圖失敗!" << endl;        return -1;
    }

    rectangle(srcImage, Rect(0, 0, 600, 200), Scalar(0, 255, 0),2); //將感興趣區(qū)域框出來
    imshow("ROI", srcImage);
    waitKey();    return 0;

}

綠框位置就是我們選的感興趣區(qū)域。
移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

有時(shí)候我們不僅想把ROI標(biāo)記出來,還想把ROI提取出來,成為一幅單獨(dú)圖片,那我們代碼可以這么寫: