using namespace cv;Mat SrcImage;Mat GrayImage;Mat BinaryImage; void on_tra_图像二值化代码">
当前位置:   article > 正文

opencv二值化代码实现_图像二值化代码

图像二值化代码

基于OPENCV的图像二值化代码:

  1. #include <opencv2/core/core.hpp>
  2. #include<opencv2/highgui/highgui.hpp>
  3. #include"opencv2/imgproc/imgproc.hpp"
  4. #include <iostream>
  5. using namespace cv;
  6. Mat SrcImage;
  7. Mat GrayImage;
  8. Mat BinaryImage;
  9. void on_trackbar(int pos,void*)
  10. {
  11. //转化为二值图
  12. threshold(GrayImage, BinaryImage, pos, 255, CV_THRESH_BINARY);
  13. namedWindow("二值图");
  14. imshow("二值图", BinaryImage);
  15. }
  16. void to_GrayImage()
  17. {
  18. //创建与原图同类型和同大小的矩阵
  19. GrayImage.create(SrcImage.size(), SrcImage.type());
  20. //将原图转换为灰度图像
  21. cvtColor(SrcImage, GrayImage, CV_BGR2GRAY);
  22. namedWindow("灰度图");
  23. imshow("灰度图", GrayImage);
  24. }
  25. void creat_trackbar()
  26. {
  27. int nThreshold = 0;
  28. createTrackbar("二值图阈值", "二值图", &nThreshold, 254, on_trackbar);
  29. }
  30. int main()
  31. {
  32. SrcImage = imread("/home/caozilong/Workspace/python/beauty.jpg");
  33. namedWindow("原图");
  34. imshow("原图", SrcImage);
  35. to_GrayImage();
  36. on_trackbar(100, 0);
  37. creat_trackbar();
  38. waitKey();
  39. }

编译

 g++ erzhihua.cpp `pkg-config --cflags --libs opencv`

运行结果:

减小阈值

CV_THRESH_BINARY_INV模式:

GDB调试,看二值化数据:

CV_THRESH_BINARY_INV

CV_THRESH_BINARY

可以看到:

1.二值化后,像素数据不是255就是0,只有两个值。

2.INV后,数值取反。


结束

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/954875
推荐阅读
相关标签
  

闽ICP备14008679号