Files
kepfeldolgozas/ora6/proj/main.cpp
2025-10-30 17:36:47 +01:00

47 lines
1.0 KiB
C++

#include "histo.h"
#include "opencv2/imgcodecs.hpp"
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
void thinning(const Mat img, Mat& skel){
Mat mask, se, eroded, tmp;
mask = img.clone();
se = Mat::zeros(img.size(), CV_8UC1);
se = getStructuringElement(MORPH_CROSS, Size(3,3));
while(true){
erode(mask, eroded, se);
dilate(eroded, tmp, se);
tmp = mask - tmp;
skel = skel | tmp;
eroded.copyTo(mask); //shallow copy miatt kulonben csak a fejlecet masolja
if(countNonZero(mask) == 0){
break;
}
imshow("mask", mask);
imshow("skel", skel);
waitKey(100);
}
}
int main(){
Mat img = imread("../wrench.jpg", IMREAD_GRAYSCALE);
Mat mask, skel;
threshold(img, mask, 80, 255, THRESH_BINARY_INV);
//medianBlur(mask, mask, 7);
thinning(mask, skel);
imshow("mask", mask);
waitKey(0);
return 0;
}