Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <opencv2/opencv.hpp>
  3. #include <opencv2/highgui/highgui.hpp>
  4.  
  5. using namespace std;
  6. using namespace cv;
  7.  
  8. ///Prototype Fungsi
  9. int getMax(int a,int b,int c)
  10. {
  11. if(a>=b) {
  12. if(a>=c) return a;
  13. else return c;
  14. }
  15. else{
  16. if(b>=c) return b;
  17. else return c;
  18. }
  19. }
  20. int getMin(int a,int b,int c)
  21. {
  22. if(a<=b) {
  23. if(a<=c) return a;
  24. else return c;
  25. }
  26. else{
  27. if(b<=c) return b;
  28. else return c;
  29. }
  30. }
  31. int main()
  32. {
  33. Mat img = imread("dian_sastro.jpg", CV_LOAD_IMAGE_COLOR);
  34. //Mat imgHSV = cvCreateMat(img->height, img->width, CV_8UC3);
  35. //Mat imgHSV2 = cvCreateMat(img->height, img->width, CV_8UC3);
  36. Mat imgHSV = img.clone();
  37. Mat imgHSV2 = img.clone();
  38.  
  39. // Konversi RGB ke HSV tanpa menggunakan library opencv
  40.  
  41. Vec3b oldPixel;
  42. Vec3b newPixel;
  43. int b,g,r;
  44. double h,s,v;
  45. for(int i=0;i<img.rows;i++)
  46. {
  47. for(int j=0;j<img.cols;j++)
  48. {
  49. oldPixel = img.at<Vec3b>(i,j);
  50.  
  51. // untuk akses pixel
  52. b=oldPixel.val[0];
  53. g=oldPixel.val[1];
  54. r=oldPixel.val[2];
  55. v=getMax(b,g,r); //[1
  56.  
  57. //if
  58. if(v!=0)
  59. {
  60. s=(v-getMin(b,g,r))/v;
  61. }
  62. else {
  63. s=0;
  64. }
  65.  
  66. if(s==0) h=0;
  67. else
  68. {
  69. if(v==r) h=(60 * (g-b))/(v-getMin(b,g,r));
  70. else if(v==g) h=120 + (60 * (b-r))/(v-getMin(b,g,r));
  71. else if(v==b) h=240 + (60 * (r-g))/(v-getMin(b,g,r));
  72. }
  73. if(h<0) h=h+360;
  74.  
  75. // hapus komen untuk normalisasi
  76.  
  77. v = v;
  78. s= 255*s;
  79. h=h/2;
  80.  
  81. newPixel.val[0]=h;
  82. newPixel.val[1]=s;
  83. newPixel.val[2]=v;
  84.  
  85. imgHSV.at<Vec3b>(i,j)[0]=h;
  86. imgHSV.at<Vec3b>(i,j)[1]=s;
  87. imgHSV.at<Vec3b>(i,j)[2]=v;
  88.  
  89.  
  90. }
  91. }
  92. imshow("RGB", img);
  93. imshow("HSV tanpa library", imgHSV);
  94.  
  95. cvtColor(img,imgHSV2,CV_BGR2HSV); // menggunakan library openCV
  96. imshow("HSV Dengan Library OpenCV", imgHSV2);
  97. cvWaitKey(0);
  98.  
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement