📄 xil_ycrcb2rgb_post_proc.m
字号:
function [vhdl_out_r, vhdl_out_g, vhdl_out_b] = Xil_YCrCb2RGB_post_proc(data_out_r, data_out_g, data_out_b, v_sync, input_image_rm, input_image_gm, input_image_bm)
[ysize,xsize,planes] = size( input_image_rm );
delay = find(v_sync==1); % Dynamic alignment
scale = pow2(ceil(log2(max(max(max([data_out_r, data_out_g, data_out_b])))))-8);
vhdl_out_r = uint8( round( reshape(data_out_r(delay:delay+xsize*ysize-1), ysize, xsize)/scale));
vhdl_out_g = uint8( round( reshape(data_out_g(delay:delay+xsize*ysize-1), ysize, xsize)/scale));
vhdl_out_b = uint8( round( reshape(data_out_b(delay:delay+xsize*ysize-1), ysize, xsize)/scale));
figure(3); colormap('gray');
subplot(2,2,1);
rgb_image(:,:,1) = mod(round(vhdl_out_r),256);
rgb_image(:,:,2) = mod(round(vhdl_out_g),256);
rgb_image(:,:,3) = mod(round(vhdl_out_b),256);
imshow( uint8(rgb_image) ); xlabel('VERIFICATION RGB');
subplot(2,2,2);
imshow(double(vhdl_out_r)/255); xlabel('VERIFICATION R');
subplot(2,2,3);
imshow(double(vhdl_out_g)/255); xlabel('VERIFICATION G');
subplot(2,2,4);
imshow(double(vhdl_out_b)/255); xlabel('VERIFICATION B');
%error_luma = sum(sum(abs(vhdl_out_r - input_image_rm)))/(xsize*ysize)
%error_cr = sum(sum(abs(vhdl_out_g - input_image_gm)))/(xsize*ysize)
%error_cb = sum(sum(abs(vhdl_out_b - input_image_bm)))/(xsize*ysize)
%PSNR_luma = psnr(vhdl_out_r, input_image_rm, ysize, xsize)
%PSNR_cr = psnr(vhdl_out_g, input_image_gm, ysize, xsize)
%PSNR_cb = psnr(vhdl_out_b, input_image_bm, ysize, xsize)
%MSE_luma = mse(vhdl_out_r, input_image_rm);
%MSE_cr = mse(vhdl_out_g, input_image_gm);
%MSE_cb = mse(vhdl_out_b, input_image_bm);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -