2
我試圖創建一個程序,可以操縱圖像的HSV值,並在操作HSV值之前將完整的HSV圖像顯示爲默認值。我使用Visual C++ 2008.並且這是顯示來自3個通道的HSV圖像的算法: 1.加載圖像 2.將RGB文件轉換爲HSV 3.將HSV文件拆分爲3個通道 4.合併通道 5.顯示合併後的渠道如何合併HSV通道
這是我uncomplete的源代碼(我不能告訴你我的完整,因爲它太長):
...
...
cv::Mat Citra,CitraConv,CitraHSV[3],CitraD,Citra6,CitraH,CitraH1,CitraS,CitraS1,
CitraV,CitraV1;
std::vector<cv::Mat>CitraHSV2(3);
cv::cvtColor(Citra,CitraConv,CV_BGR2HSV);
cv::split(CitraConv,CitraHSV);
CitraH=CitraHSV[0];
CitraH1=CitraH;
CitraS=CitraHSV[1];
CitraS1=CitraS;
CitraV=CitraHSV[2];
CitraV1=CitraV;
CitraHSV2[0]=CitraH1;
CitraHSV2[1]=CitraS1;
CitraHSV2[2]=CitraV1;
cv::merge(CitraHSV2,CitraD);//Error Here
Citra6=CitraD;
pictureBoxCitra2->Image=IplImageToBitmap(&(IplImage)Citra6);
但是,當我執行程序時,我得到了錯誤「類型爲'System.Runtime.InteropServices.SEHException'的未處理異常「。該錯誤出現在cv :: merge函數中。誰能幫我?這個程序有什麼問題?因爲當我構建解決方案(F7)程序時沒有語法錯誤。