簡體   English   中英

使用Grabcut初始化中心的矩形,該矩形等於圖像大小的50%

[英]Initialize rectangle in the center which is equal to 50% of the image size using Grabcut

我嘗試在以下論文中實現構想: BiCoS:一種用於圖像分類的雙級聯合細分方法,但我對以下要求感到困惑: GrabCut在這里被初始化為中間的矩形(圖像的50%大小(除非另有說明)分配給前景,其余分配給背景。 我不知道如何在中心繪制一個矩形,該矩形占據圖像大小的50%。 請幫我。 我使用OpenCV庫在C ++中進行編碼。

好吧,他們假設感興趣的人物被一個矩形所包圍,例如:

Rect(Point(image.width/4, image.height/4), Point(image.width*3/4, image.height*3/4);

面積為圖片一半(1 / root2大小)的矩形; 再次以圖像中心點為中心。

然后可以在該矩形內調用抓取算法。

如果圖形某種程度上靠近邊界,則他們用手選擇矩形(在有監督的初始化下)。 由於目的是訓練具有抓取結果的SVM,因此自動化不是必須的。

本文應該對此更加清楚。 從上下文來看,它可能是指定義包含分段對象的感興趣區域(ROI)的矩形。 ROI外部的像素被標記為“明顯背景”。 如您所知,GrabCut要求您指定圖像的區域,這些區域指定明顯的背景像素,可能的前景像素,明顯的前景像素,可能的前景像素。 所有這些數據都作為參數提供給OpenCV中的grubCut函數 另外, 這是cv::Rect的文檔

我不知道作者如何選擇矩形的大小。 矩形尺寸等於圖像尺寸的50%是什么意思? 矩形的尺寸可能等於圖像尺寸的1/2。 您可以通過電子郵件發送論文作者,並要求進行澄清。

要選擇,您可以使用Roi。 但是,如果要繪制方框或矩形,則可以使用矩形或直線功能。 這是繪制50%圖像大小的矩形框的簡單代碼。

int main(int argc, char *argv[])
{
    Mat src = imread("Desert.jpg");
    Mat src_original = src.clone();

    cv::Size sz = src.size();
    int block_size = 16;
    int x_cord_roi = sz.width/4;
    int y_cord_roi = sz.height/4;
    int width_roi = sz.width/2;
    int height_roi = sz.height/2;

    imshow("My_Win_Ori", src_original);

    Mat roi(src, Rect(x_cord_roi, y_cord_roi, width_roi, height_roi));
   // rectangle( src, Point(x_cord_roi, y_cord_roi), Point( x_cord_roi + width_roi, y_cord_roi + height_roi),
   //        Scalar(255 ), -1,8 );

    int thickness = 2;
    int lineType = 8;
    line( src, Point( x_cord_roi, y_cord_roi), Point(x_cord_roi + width_roi, y_cord_roi), Scalar( 0, 0, 0 ), thickness, lineType );
    line( src, Point( x_cord_roi, y_cord_roi), Point(x_cord_roi, y_cord_roi + height_roi), Scalar( 0, 0, 0 ), thickness, lineType );
    line( src, Point( x_cord_roi + width_roi, y_cord_roi), Point(x_cord_roi +width_roi , y_cord_roi + height_roi), Scalar( 0, 0, 0 ), thickness, lineType );
    line( src, Point( x_cord_roi, y_cord_roi + height_roi), Point(x_cord_roi + width_roi, y_cord_roi + height_roi), Scalar( 0, 0, 0 ), thickness, lineType );

    imshow("My_Win", src);
    waitKey(0);
    getchar();
    return 0;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM