方式一贬循、利用 IplImage數(shù)據(jù)類型轉換
1陶夜、聲明一個 IplImage指針*dst,并進行數(shù)據(jù)深度轉換dst的數(shù)據(jù)部分在數(shù)值上與src的值一致常侣,而其深度轉換成了64F蜡饵。 其中深度指的是每一個像素的位數(shù)(bits),在opencv的Mat.depth()中得到的是一個 0 – 6 的數(shù)字胳施,分別代表不同的位數(shù):enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 }; 可見 0和1都代表8位溯祸, 2和3都代表16位,4和5代表32位舞肆,6代表64位焦辅。
//dst的數(shù)據(jù)部分在數(shù)值上與src的值一致,而其深度轉換成了64F椿胯,實現(xiàn)由int類型轉換到double筷登。
IplImage* dst = cvCreateImage(cvSize(src->width, src->height), IPL_DEPTH_64F, 3);//IplImage類型的*src中存儲的是轉換前的數(shù)據(jù)
2、利用 cvConvertScale進行閾值轉換哩盲,將閾值從0-255轉換到0-1
//將輸入圖像的像素點double類型值域由0-255轉換成0-1
cvConvertScale(src, dst, 1.0 / 255, 0);
3前方、將 IplImage轉換成Mat類型
dst_image = cv::cvarrToMat(dst);//dst_image存儲轉換后的Mat數(shù)據(jù)
方式二、利用Mat矩陣數(shù)據(jù)類型轉換cv::convertTo函數(shù)實現(xiàn)
src.convertTo(src, CV_64FC3, 1.0 / 225);src的數(shù)據(jù)類型是CV_8UC3
一般圖像文件格式使用的是unsigned 8bits廉油,對應的整型數(shù)據(jù)類型有:CV_8UC1惠险、CV_8UC2,CV_8UC3
其中,CV_8UC3表示3通道8位的unsigned char型抒线。
浮點數(shù)據(jù)類型說明:
float是32位莺匠,對應的CvMat數(shù)據(jù)結構類型是:CV_32FC1,CV_32FC2,CV_32FC3;其中十兢,CV_32FC3表示32位的3通道float型
double是64位趣竣,對應的CvMat數(shù)據(jù)結構類型是:CV_64FC1,CV_64FC2旱物,CV_64FC3遥缕;其中,CV_64FC3表示64位的3通道double型宵呛。
關注公眾號“striveallen”单匣,回復“1024”即可免費領取110本經(jīng)典編程電子書。