#include <stdio.h>
int edgeThresh = 1;
int edgeThreshScharr=1;
Mat image, gray, blurImage, edge1, edge2, cedge;
const char* window_name1 = "Edge map : Canny default (Sobel gradient)";
const char* window_name2 = "Edge map : Canny with custom gradient (Scharr)";
static void onTrackbar(int, void*)
{
blur(gray, blurImage,
Size(3,3));
Canny(blurImage, edge1, edgeThresh, edgeThresh*3, 3);
cedge = Scalar::all(0);
imshow(window_name1, cedge);
Scharr(blurImage,dx,
CV_16S,1,0);
Scharr(blurImage,dy,
CV_16S,0,1);
Canny( dx,dy, edge2, edgeThreshScharr, edgeThreshScharr*3 );
cedge = Scalar::all(0);
imshow(window_name2, cedge);
}
static void help(const char** argv)
{
printf("\nThis sample demonstrates Canny edge detection\n"
"Call:\n"
" %s [image_name -- Default is fruits.jpg]\n\n", argv[0]);
}
const char* keys =
{
"{help h||}{@image |fruits.jpg|input image name}"
};
int main(
int argc,
const char** argv )
{
help(argv);
string filename = parser.get<string>(0);
image =
imread(samples::findFile(filename), IMREAD_COLOR);
if(image.empty())
{
printf("Cannot read image file: %s\n", filename.c_str());
help(argv);
return -1;
}
cedge.
create(image.size(), image.type());
createTrackbar(
"Canny threshold default", window_name1, &edgeThresh, 100, onTrackbar);
createTrackbar(
"Canny threshold Scharr", window_name2, &edgeThreshScharr, 400, onTrackbar);
onTrackbar(0, 0);
return 0;
}
Designed for command line parsing.
Definition utility.hpp:890
n-dimensional dense array class
Definition mat.hpp:951
void copyTo(OutputArray m) const
Copies the matrix to another one.
void create(int rows, int cols, int type)
Allocates new array data if needed.
Template class for specifying the size of an image or rectangle.
Definition types.hpp:338
#define CV_16S
Definition interface.h:79
int waitKey(int delay=0)
Waits for a pressed key.
void namedWindow(const String &winname, int flags=WINDOW_AUTOSIZE)
Creates a window.
int createTrackbar(const String &trackbarname, const String &winname, int *value, int count, TrackbarCallback onChange=0, void *userdata=0)
Creates a trackbar and attaches it to the specified window.
CV_EXPORTS_W Mat imread(const String &filename, int flags=IMREAD_COLOR_BGR)
Loads an image from a file.
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0, AlgorithmHint hint=cv::ALGO_HINT_DEFAULT)
Converts an image from one color space to another.
int main(int argc, char *argv[])
Definition highgui_qt.cpp:3