File: example.cpp

package info (click to toggle)
opencv 4.10.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 282,092 kB
  • sloc: cpp: 1,178,079; xml: 682,621; python: 49,092; lisp: 31,150; java: 25,469; ansic: 11,039; javascript: 6,085; sh: 1,214; cs: 601; perl: 494; objc: 210; makefile: 173
file content (45 lines) | stat: -rw-r--r-- 1,433 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "opencv2/core.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/hfs.hpp"

using namespace cv;
using namespace cv::hfs;
int main(int argc, char *argv[])
{
    // invalid number of command line parameter
    if( argc != 2 ) {
        return EXIT_FAILURE;
    }

    char* path = argv[1];
    // read in a pictrue to initialize the height and width
    Mat src = imread(path), res;
    int _h = src.rows, _w = src.cols;

    // initialize the HfsSegment object
    // In this example, we used default paramters.
    // However, bear in mind that you can pass in your
    // own parameters in with this function.
    Ptr<HfsSegment> h = HfsSegment::create( _h, _w );

    // segment and write the first result.
    res = h->performSegmentGpu(src);
    imwrite( "segment_default_gpu.jpg", res );
    // also, there is CPU interface for that
    res = h->performSegmentCpu(src);
    imwrite( "segment_default_cpu.jpg", res );

    // also, instead of getting a segmented image
    // from our interface, you can also choose to not to
    // draw the result on the Mat and only get a matrix
    // of index. Note that the data type of the returned
    // Mat in this case is CV_16U
    Mat idx_mat = h->performSegmentGpu( src, false );

    // also, you can change any parameters as you want
    h->setSlicSpixelSize(10);
    res = h->performSegmentGpu(src);
    imwrite( "segment_changed_param.jpg", res );

    return 0;
}