// This file is part of VisionCPP, a lightweight C++ template library
// for computer vision and image processing.
//
// Copyright (C) 2016 Codeplay Software Limited. All Rights Reserved.
//
// Contact: visioncpp@codeplay.com
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/// \file edge_detector.cc
///
/// -------Example--------
/// Edge detector based on Sobel
///
/// \brief This example implements an edge detection based on Sobel mask
///
// include OpenCV for camera display
#include
// include VisionCpp
#include
// functor that calculates the magnitude of each pixel based on Sobel
struct OP_Magnitude {
template
float operator()(const T1& t1, const T2& t2) {
return cl::sycl::clamp(cl::sycl::sqrt(t1 * t1 + t2 * t2), 0.0f, 1.0f);
}
};
// main program
int main(int argc, char** argv) {
// open video or camera
cv::VideoCapture cap;
if (argc == 1) {
cap.open(0);
std::cout