Goal
In this tutorial you will learn how to:
Theory
Code
This tutorial code's is shown lines below. You can also download it from here
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace cv;
using namespace std;
{
const int r = 100;
vector<Point2f> vert(6);
vert[0] =
Point( 3*r/2, static_cast<int>(1.34*r) );
vert[1] =
Point( 1*r, 2*r );
vert[2] =
Point( 3*r/2, static_cast<int>(2.866*r) );
vert[3] =
Point( 5*r/2, static_cast<int>(2.866*r) );
vert[4] =
Point( 3*r, 2*r );
vert[5] =
Point( 5*r/2, static_cast<int>(1.34*r) );
for( int j = 0; j < 6; j++ )
{
line( src, vert[j], vert[(j+1)%6],
Scalar( 255 ), 3, 8 ); }
vector<vector<Point> > contours; vector<Vec4i> hierarchy;
for(
int j = 0; j < src.
rows; j++ )
{
for(
int i = 0; i < src.
cols; i++ )
}
double minVal; double maxVal;
minVal = abs(minVal); maxVal = abs(maxVal);
Mat drawing = Mat::zeros( src.size(),
CV_8UC3 );
for( int j = 0; j < src.rows; j++ )
{
for(
int i = 0; i < src.
cols; i++ )
{
if( raw_dist.at<float>(j,i) < 0 )
{ drawing.
at<
Vec3b>(j,
i)[0] = (
uchar)(255 -
abs(raw_dist.at<
float>(j,i))*255/minVal); }
else if( raw_dist.at<float>(j,i) > 0 )
{ drawing.
at<
Vec3b>(j,
i)[2] = (
uchar)(255 - raw_dist.at<
float>(j,
i)*255/maxVal); }
else
}
}
const char* source_window = "Source";
imshow(
"Distance", drawing );
return(0);
}
Explanation
Result
Here it is: