Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. #include "opencv2/calib3d/calib3d.hpp"
  2. #include "opencv2/imgproc/imgproc.hpp"
  3. #include "opencv2/highgui/highgui.hpp"
  4. #include "opencv2/contrib/contrib.hpp"
  5.  
  6. #include <stdio.h>
  7. #include <iostream>
  8. #include <fstream>
  9. using namespace cv;
  10.  
  11. ///KONTUR////////////////////////////////
  12. int main(int argc, char** argv)
  13. {
  14. Mat img = imread("pileczka_L.png");
  15.  
  16. Mat edges = img.clone();
  17. Canny(img, edges, 150, 450);
  18. imwrite("MiI-Kontur.png", edges);
  19.  
  20. Mat filled = edges.clone();
  21. cvtColor(edges, filled, CV_GRAY2RGB);
  22. floodFill(filled, Point(700, 400), CV_RGB(255, 255, 255));
  23. floodFill(filled, Point(0, 0), CV_RGB(0, 255, 0));
  24. imwrite("MiI-Obszar.png", filled);
  25.  
  26. return 0;
  27. }
  28.  
  29. //////////GLEBIA//////////////////////////
  30. int main(int argc, char** argv)
  31. {
  32. Mat img = imread("MiI-MapaRozbieznosci-Skalibrowana.png");
  33.  
  34. Mat depth = 4800.0 / img;
  35. imwrite("MiI-MapaGlebi.png", depth);
  36.  
  37. return 0;
  38. }
  39.  
  40. /////////////SREDNIA ODLEGLOSC//////////////////////////////
  41. int main(int argc, char** argv)
  42. {
  43. Mat dist = imread("MiI-MapaGlebi.png");
  44. Mat ball = imread("MiI-Obszar.png");
  45.  
  46. double avgDist = 0;
  47. int nDist = 0;
  48.  
  49. for (int i = 0; i < ball.rows; i++) {
  50. for (int j = 0; j < ball.cols; j++) {
  51. Vec3b ballPx = ball.at<Vec3b>(i, j);
  52. uchar distPx = dist.at<uchar>(i, j);
  53.  
  54. // Skip pixels not in ball.
  55. if (ballPx != Vec3b(255, 255, 255))
  56. continue;
  57.  
  58. avgDist += distPx;
  59. nDist++;
  60. }
  61. }
  62.  
  63. avgDist /= nDist;
  64.  
  65. std::ofstream out("MiI-SredniaOdleglosc.txt");
  66. out << avgDist;
  67. out.close();
  68.  
  69. return 0;
  70. }
  71. //////////////SREDNICA///////////////////////////////
  72. int main(int argc, char** argv)
  73. {
  74. Mat dist = imread("MiI-MapaGlebi.png");
  75. Mat ball = imread("MiI-Obszar.png");
  76.  
  77. int nBallPixels = 0;
  78. for (int i = 0; i < ball.rows; i++) {
  79. for (int j = 0; j < ball.cols; j++) {
  80. if (ball.at<Vec3b>(i, j) == Vec3b(255, 255, 255))
  81. nBallPixels++;
  82. }
  83. }
  84.  
  85. double avgDist;
  86. std::ifstream in("MiI-SredniaOdleglosc.txt");
  87. in >> avgDist;
  88. in.close();
  89.  
  90. double diameterPx = 2 * sqrt((double)nBallPixels / 3.141592);
  91. double diameterCm = 0.001 * avgDist * diameterPx;
  92.  
  93. std::cout << diameterCm << std::endl;
  94.  
  95. return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement