opencv笔记十一(膨胀腐蚀)erode,dilate,getStructuringElement,createTrackbar

膨胀:dilate(Mat src,Mat out,Mat getStructuringElement);

腐蚀:erode(Mat src,Mat out,Mat getStructuringElement);

动态调整结构元素大小:

createTrackbar(const String & trackbarname, const String winName, int* value, int count, Trackbarcallback func, void* userdata=0)

函数详解:https://blog.csdn.net/keith_bb/article/details/53174484


  
  
  1. #include <opencv2/opencv.hpp>
  2. #include <iostream>
  3. using namespace cv;
  4. Mat src, dst;
  5. char OUTPUT_WIN[] = "output image";
  6. int element_size = 3;
  7. int max_size = 21;
  8. void CallBack_Demo(int, void*);
  9. int main(int argc, char** argv) {
  10. src = imread( "D:/vcprojects/images/test1.png");
  11. if (!src.data) {
  12. printf( "could not load image...\n");
  13. return -1;
  14. }
  15. namedWindow( "input image", CV_WINDOW_AUTOSIZE);
  16. imshow( "input image", src);
  17. namedWindow(OUTPUT_WIN, CV_WINDOW_AUTOSIZE);
  18. createTrackbar( "Element Size :", OUTPUT_WIN, &element_size, max_size, CallBack_Demo);
  19. CallBack_Demo( 0, 0);
  20. waitKey( 0);
  21. return 0;
  22. }
  23. void CallBack_Demo(int, void*) {
  24. int s = element_size * 2 + 1;
  25. Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point( -1, -1));
  26. // dilate(src, dst, structureElement, Point(-1, -1), 1);
  27. erode(src, dst, structureElement);
  28. imshow(OUTPUT_WIN, dst);
  29. return;
  30. }

膨胀:dilate(Mat src,Mat out,Mat getStructuringElement);

猜你喜欢

转载自blog.csdn.net/kellyroslyn/article/details/83104909
今日推荐