-Açıklama:--
Bazı projelerde resmin tamamıyla uğraşmaktansa kenarlarıyla uğraşarak istediğimiz sonuca daha çabuk ulaşırız. Aşağıdaki kodları ve açıklamaları inceleyiniz.-
-Program Kodu:--
Kod:
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>
using namespace cv;
Mat src, src_gray;
Mat dst, detected_edges;
int edgeThresh = 1;
int lowThreshold;
int const max_lowThreshold = 100;
int ratio = 3;
int kernel_size = 3;
char* window_name = "Kenar Bulma";
void CannyThreshold(int, void*)
{
//gürültü azaltılıyor
blur(src_gray, detected_edges, Size(3, 3));
Canny(detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_size);
dst = Scalar::all(0);
src.copyTo(dst, detected_edges);
imshow(window_name, dst);
}
int main()
{
//resim yükleniyor
src = imread("resim.jpg");
if (!src.data)
{
return -1;
}
//src ile aynı türde ve boyutta matris oluşturuldu
dst.create(src.size(), src.type());
//resim gri yapıldı
cvtColor(src, src_gray, CV_BGR2GRAY);
//pencere oluşturuldu
namedWindow(window_name, CV_WINDOW_AUTOSIZE);
//Trackbar eklendi
createTrackbar("Eşik:", window_name, &lowThreshold, max_lowThreshold, CannyThreshold);
//resim gösteriliyor
CannyThreshold(0, 0);
//bir tuşa basınca program kapanıyor
waitKey(0);
return 0;
}
-Ek (İşlem yapılan orjinal resim):--
