本次介紹一下三個函數。
cvLoadImage(加載) cvCreateImage(創建) cvReleaseImage(釋放)
爲什麼要釋放?釋放要注意什麼?
在一個大循環中使用cvLoadImage(),不及時釋放,內存會佔滿。
cvReleaseImage()可以釋放cvCreateImage()加載的圖像。
cvReleaseImage()無法釋放cvLoadImage()加載的圖像。
使用順序
IplImage* img1 = cvLoadImage("1.jpg");
IplImage* cutImg1 = cvCreateImage(CvSize,
IPL_DEPTH_8U,
img1->nChannels);
CutIplImage(img1, cutImg1, 0, 0);
// 此處是對cutImg1進行操作的代碼
// 操作後即可釋放圖片
cvReleaseImage(&cutImg1);
分解看
IplImage* img1 = cvLoadImage("1.jpg");
圖片加載
IplImage* cutImg1 = cvCreateImage(CvSize,
IPL_DEPTH_8U,
img1->nChannels);
函數cvCreateImage創建圖像首地址,並分配存儲空間。
CvSize是一個帶有寬度和高度的結構體。
depth是像素的位深度,值一般爲8
(即IPL_DEPTH_8U - 8位無符號整數)
channels是圖像通道數(RGB爲3,灰度爲1)
CutIplImage(img1, cutImg1, 0, 0);
cvReleaseImage(&cutImg1);
確定圖片不用後,釋放圖片內存。
歡迎評論交流。