第三层卷积:
cout<<"第三层卷积..."<<endl; // 第三层卷积:卷积核尺寸5×5(f3×f3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像。 //conv3_data = zeros(hei, wid); 卷积矩阵 conv3_data (wid,hei); for(int i = 0;i<32;i++) { //conv3_subfilter = reshape(weights_conv3(i,:), conv3_patchsize, conv3_patchsize); 卷积矩阵 conv3_subfilter(5,5); 转换卷积核(&sr,&conv3_subfilter,3,i); //保存32个卷积核 //sprintf(txt, "conv3_filter%d.txt", i); //save_卷积矩阵 (txt,&conv3_subfilter); 卷积矩阵 conv3_temp (wid,hei); //conv3_data(:,:) = conv3_data(:,:) + imfilter(conv2_data(:,:,i), conv3_subfilter, 'same', 'replicate'); //Conv2(conv3_subfilter.data, conv2_data[i], conv3_temp.data, conv3_subfilter.width, conv3_subfilter.height, im_b.width,im_b.height) ; 卷积(&conv3_subfilter,&conv2_data[i],&conv3_temp); 第三层运算(&conv3_data,&conv3_temp);//特征图迭加 //保存32张特征图 im_tt=卷积矩阵2im(&conv3_temp); sprintf(txt, "conv3_temp_0%d.jpg", i); saveimage(txt, &im_tt); cout<<i<<endl; }//end
看一下32张特征图:
好象也不怎么样,看一下迭加图
//保存32次迭加图 im_tt=卷积矩阵2im(&conv3_data); sprintf(txt, "conv3_data_0%d.jpg", i); saveimage(txt, &im_tt);
最后一张就是输出图了,和原图比一下:
已经比原图清晰多了,由于这里输入和输出是一样大小的图,再把重建图再输入会怎么样呢?
好象也有效果,只是有点过了
第三层完成。
实际上全部已经结束。
后续应该是加上颜色,和边界改进吧