纯C++超分辨率重建SRCNN --改编--(四)第三层卷积

第三层卷积:

	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);

最后一张就是输出图了,和原图比一下:


已经比原图清晰多了,由于这里输入和输出是一样大小的图,再把重建图再输入会怎么样呢?


好象也有效果,只是有点过了

第三层完成。

实际上全部已经结束。

后续应该是加上颜色,和边界改进吧


猜你喜欢

转载自blog.csdn.net/juebai123/article/details/80569618