本文整理汇总了C++中Neighborhood::add方法的典型用法代码示例。如果您正苦于以下问题:C++ Neighborhood::add方法的具体用法?C++ Neighborhood::add怎么用?C++ Neighborhood::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Neighborhood
的用法示例。
在下文中一共展示了Neighborhood::add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char *argv[])
{
int p = 2;
double beta = 10;
int neighbors = 8;
double sigma = 10.0;
double rho = 10.0;
double gamma = 10000.0;
int c;
/* Read command line parameters beta and p. */
while ((c = getopt(argc, argv, "b:p:r:s:g:n:fh")) != -1) {
switch (c)
{
case 'p':
p = atoi(optarg);
break;
case 'b':
beta = atof(optarg);
break;
case 'g':
gamma = atof(optarg);
break;
case 'r':
rho = atof(optarg);
break;
case 's':
sigma = atof(optarg);
break;
case 'n':
neighbors = atoi(optarg);
break;
case '?':
if (optopt == 'p' || optopt == 'b' || optopt == 'g'
|| optopt == 'n' || optopt == 'r'
|| optopt == 's') {
fprintf(stderr, "Option -%c requires an argument.\n",
optopt);
}
else if (isprint(optopt)) {
fprintf(stderr, "Unknown option `-%c'.\n", optopt);
}
else {
fprintf(stderr, "Unknown option character `\\x%x'.\n",
optopt);
}
return 1;
default:
exit(1);
}
}
/*
* Non-option arguments are now in argv from index optind
* to index argc-1
*/
Mat image;
image = imread(argv[optind], CV_LOAD_IMAGE_GRAYSCALE);
if (!image.data) {
cout << "Loading image failed" << endl;
return -1;
}
cout << "Using gamma = " << gamma << endl;
cout << "Using rho = " << rho << endl;
cout << "Using sigma = " << sigma << endl;
Mat_<Tensor> tensors = Mat_<Tensor>::zeros(image.rows, image.cols);
Mat blur, edge, structure, color;
createAnisotropyTensor(tensors, image, sigma, rho, gamma,
blur, edge, structure, color);
imwrite(argv[optind + 1], blur);
imwrite(argv[optind + 2], edge);
imwrite(argv[optind + 3], structure);
imwrite(argv[optind + 4], color);
/*
* Network only handles integer edges, so we increase the scale a bit.
*/
int a;
int b;
a = 100;
b = beta;
/*
* Specify the neighbors of a pixel.
*/
cout << "Creating size " << neighbors << " neighborhood." << endl;
Neighborhood neigh;
if (neighbors >= 4) {
neigh.add( 1, 0, b * 1.0);
neigh.add( 0, 1, b * 1.0);
neigh.add(-1, 0, b * 1.0);
neigh.add( 0,-1, b * 1.0);
}
//.........这里部分代码省略.........