- 最後登錄
- 2023-1-13
- 在線時間
- 0 小時
- 註冊時間
- 2015-8-27
- 閱讀權限
- 10
- 精華
- 0
- UID
- 1623919
- 帖子
- 0
- 積分
- 0 點
- 潛水值
- 930 米
| 若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。 本帖最後由 ab78910 於 2010-3-20 09:55 AM 編輯
因為我是要算特徵臉,所以會用到這樣的運算~
另外我上網查溫差圖,查不到耶,請問那是什麼東東~?
然後我照您說的將我的程式碼改成下面這樣:- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <cv.h>
- #include <highgui.h>
- #include <cvcam.h>
- char s1[20] = {0};
- int main(int argc, char *argv[])
- {
- IplImage *Img1,*Img2;
- CvMat *Mat = cvCreateMat(300, 400, CV_32FC1);
- CvMat *Mat3 = cvCreateMat(300, 300, CV_32FC1);
-
- Img1 = cvLoadImage("1.jpg",0);
- Img2 = cvCreateImage(cvSize(300, 300), IPL_DEPTH_8U, 1);
-
- cvGetMat(Img1,Mat);
- cvMulTransposed(Mat, Mat3, 0,NULL);
-
- cvGetImage(Mat3,Img2);
-
- cvConvertScale(Mat3, Img2);
- Img2->depth = 8;
- Img2->nChannels = 1;
-
- //cvGetImage(Mat3,Img2); //GetImage放這會錯
-
-
- cvNamedWindow("1", 0);
- cvResizeWindow("1", 400, 300);
- cvMoveWindow("1",400,160);
- cvShowImage("1", Img1);
-
- cvNamedWindow("2", 0);
- cvResizeWindow("2", 400, 300);
- cvMoveWindow("2",400,580);
- cvShowImage("2", Img2);
-
- sprintf(s1, "2.jpg");
- cvSaveImage(s1, Img2);
- sprintf(s1, "3.jpg");
- cvSaveImage(s1, Img1);
-
- cvWaitKey(0);
-
- cvReleaseImage(&Img1);
- cvDestroyWindow("1");
- cvReleaseImage(&Img2);
- cvDestroyWindow("2");
- }
複製代碼 因為讀取後,圖轉成灰階的,所以我把nChannels改成=1
然後我發現只有把Img2->depth = 8;槓掉或把數值改32就不能存檔,應該就是這個影響能不能存檔的~
cvConvertScale(Mat3,Img2); & Img2->nChannels = 1; 槓掉都沒差
還有,程式碼加了您說的那些,圖顯示會不一樣~~
原圖(沒加您說的程式碼,此圖不能存檔@@):
加了後,nChannels=4時的圖:
nChannels = 1時的圖:
... |
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊 |