현재 OpenCV의 인터페이스를 사용하여 get_gradientXY 인 CImg의 기능을 구현하고 있습니다. 그리고 OpenCV의 cvSobel은 get_gradientXY와 동일한 효과가있을 수 있지만 샘플 그래프를 실험 한 결과 출력 그래프는 완전히 다릅니다. 나는 이것에 붙어있다.opecv에서 CImg의 get_gradientXY를 구현하는 방법
imgCv.Load("1.jpg");
imgCimg.Load("1.jpg");
IplImage* pSrcImage = imgCv.GetOpenCVImpPtr();//get pointer of src graph
IplImage* grad_x = cvCreateImage(cvGetSize(pSrcImage), pSrcImage->depth, 3);
IplImage* grad_y = cvCreateImage(cvGetSize(pSrcImage), pSrcImage->depth, 3);
cvSobel(pSrcImage,grad_x,1,0,3);
cvSobel(pSrcImage,grad_y,0,1,3);
std::string filename1 = "gradcvx.jpg";
std::string filename2 = "gradcvy.jpg";
cvSaveImage(filename1.data(), grad_x);
cvSaveImage(filename2.data(), grad_y);
//*****
cimg_library::CImgList<unsigned char> gradImages = imgCimg.GetCImg().get_gradientXY(2);
gradImages[0].save("gradcimgx.jpg");
gradImages[1].save("gradcimgy.jpg");
그리고 gradcvx.jpg이 gradcimgx.jpg와 완전히 다릅니다
여기 내 테스트 코드입니다. 이유가 궁금합니다. 고맙습니다.