File: example.cpp

package info (click to toggle)
opencv 4.5.1%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 268,248 kB
  • sloc: cpp: 969,170; xml: 682,525; python: 36,732; lisp: 30,170; java: 25,155; ansic: 7,927; javascript: 5,643; objc: 2,041; sh: 935; cs: 601; perl: 494; makefile: 145
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;
}