这篇文章主要讲解了OpenCV中如何对图像数据进行64F和8U转换,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
创新互联建站从2013年成立,先为王益等服务建站,王益等地企业,进行企业商务咨询服务。为王益企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。在OpenCV中很多对数据的运算都需要转换为64F类型,比如伽玛变换,这个很明显要求幂的底数是double类型~
而cvShowImage()又要求是U8才能显示,否则显示出来是一片空白!
所以经常要进行转换,怎么做呢?看了下面的几行代码你就知道了!
IplImage *pSrcImage = cvLoadImage("pout.jpg", CV_LOAD_IMAGE_UNCHANGED); IplImage *pGrayImage_8U = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1); IplImage *pGrayImage_8U_2 = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1); IplImage *pGrayImage_64F=cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_64F, 1); cvCvtColor(pSrcImage, pGrayImage_8U, CV_BGR2GRAY); //RGB转灰度图像 cvConvertScale(pGrayImage_8U, pGrayImage_64F); //8U转64F cvConvertScale(pGrayImage_64F, pGrayImage_8U_2) //64F转8U