我在opencv中有一個框架,我不想使用imwrite()保存,我使用此代碼來提取每個通道並保存它,並打開這三個文件併合並新框架的第一個位置是C++代碼:cv :: Mat框架和SCILAB
.........
mean_fb.open("d:\\mean_blue",ios::out);
ostream osb(&mean_fb);
mean_fg.open("d:\\mean_green",ios::out);
ostream osg(&mean_fg);
mean_fr.open("d:\\mean_red",ios::out);
ostream osr(&mean_fr);
resultframe *= 1.0/255.0; // adjusting the colors of the mean value
for(int row = 0; row < resultframe.rows; row++) {
for (int col = 0; col < resultframe.cols; col++) {
// std::cout << resultframe.at<cv::Vec3f>(row, col)[1] <<std::endl;
std::cout << resultframe.at<cv::Vec3f>(row, col)[2] <<std::endl;
//fwrite(&resultframe.at<cv::Vec3f>(row,col)[0],sizeof(float),1,inpR);
osr<< resultframe.at<cv::Vec3f>(row, col)[0]<<"\n";
osg<< resultframe.at<cv::Vec3f>(row, col)[1]<<"\n";
osb<< resultframe.at<cv::Vec3f>(row, col)[2]<<"\n";
}
}
.......
保存的文件是正確的,所以我打開他們使用SCILAB由幀爲1920 * 1080的路上,這裏是SCILAB代碼:
clear
clc
stacksize('max');
cd 'd:\'
width = 1080;
height =1920 ;
im = zeros(width, height);
// read the values of the red channel
red = mgetl('mean_red'); // read the file as
red = matrix(red,[width, height]);
red = strtod(red);
im(:,:,3) = red;// because opencv defaullt color Model is BGR
clear red; // clear red to get enough stack
// read the values of the green channel
green = mgetl('mean_green'); // read the file as
green = matrix(green,[width,height]);
green = strtod(green);
im(:,:,2) = green;
clear green;
// read the values of the blue channel
blue = mgetl(mean_blue'); // read the file as
blue = matrix(blue,[width, height]);
blue = strtod(blue);
im(:,:,1) =blue ;
clear blue;
imshow(im);/////////////////////////////////////////
這是我獲得的條紋圖像的一部分: 感謝您的幫助
什麼是你的問題?你已經描述了一個場景,沒有問過一個問題。你有什麼問題 ?你想要什麼答案? – Chani 2013-02-19 14:40:42
獲取的圖像是條紋的,這是我的問題 – Engine 2013-02-19 14:41:23