zoukankan      html  css  js  c++  java
  • 生成彩条的MATLAB代码

    clc;close all;clear
    %read image
    % RGBimga = imread('bmpinput_1080p.bmp');
    RGBimga = imread('bmpinput_720p.bmp');
    RGBimgb = RGBimga*0;
    RGBimga = RGBimgb;
    
    [Hs Vs Dim] = size(RGBimga);
    gate = Vs/6; %6个竖彩条间隔
    i = 1;
    RGBimga(:,(i-1)*gate+1:i*gate,1) = 255;    %R
    i = i+1;
    RGBimga(:,(i-1)*gate+1:i*gate,2) = 255;    %G
    i = i+1;
    RGBimga(:,(i-1)*gate+1:i*gate,3) = 255;    %B
    i = i+1;
    RGBimga(:,(i-1)*gate+1:i*gate,1) = 255;    %R
    i = i+1;
    RGBimga(:,(i-1)*gate+1:i*gate,2) = 255;    %G
    i = i+1;
    RGBimga(:,(i-1)*gate+1:i*gate,3) = 255;    %B
    figure;imshow(RGBimga);
    
    [Hs Vs Dim] = size(RGBimgb);
    gate = Hs/3; %3个横彩条间隔
    RGBimgb(1:gate,:,1) = 255;                 %R
    RGBimgb(gate+1:2*gate,:,2) = 255;     %G
    RGBimgb(2*gate+1:3*gate,:,3) = 255;  %B
    figure;imshow(RGBimgb);
    
    RGBimga = uint8(RGBimga);
    RGBimgb = uint8(RGBimgb);
    
    yuvima = rgb2yuv(RGBimga);  %rgb2ycbcr
    % yuvima = rgb2ycbcr(RGBimga);
    figure;imshow(uint8(yuvima));
    yuvimb = rgb2yuv(RGBimgb);
    figure;imshow(yuvimb);
    
    YUVimg = yuvima;
    yuvimout = zeros(1,Hs*Vs*Dim);   %整理数据
    yuvimout(1:3:Hs*Vs*Dim) = reshape(YUVimg(:,:,1)',1,Hs*Vs); %%Y
    yuvimout(2:3:Hs*Vs*Dim) = reshape(YUVimg(:,:,2)',1,Hs*Vs); %%U
    yuvimout(3:3:Hs*Vs*Dim) = reshape(YUVimg(:,:,3)',1,Hs*Vs); %%V
    fid= fopen('imga_720p.yuv','wb');   %整理后可快速输出到文件
        fwrite(fid,yuvimout,'uint8');
    fclose(fid);
    fid= fopen('imga_720p.txt','w');
        fprintf(fid,'%02x\n',yuvimout);
    fclose(fid);
    
    YUVimg = yuvimb;
    yuvimout = zeros(1,Hs*Vs*Dim);
    yuvimout(1:3:Hs*Vs*Dim) = reshape(YUVimg(:,:,1)',1,Hs*Vs);
    yuvimout(2:3:Hs*Vs*Dim) = reshape(YUVimg(:,:,2)',1,Hs*Vs);
    yuvimout(3:3:Hs*Vs*Dim) = reshape(YUVimg(:,:,3)',1,Hs*Vs);
    fid= fopen('imgb_720p.yuv','wb'); %% 写二进制文件 
        fwrite(fid,yuvimout,'uint8');
    fclose(fid);
    fid= fopen('imgb_720p.txt','w');  %% 写txt文件
        fprintf(fid,'%02x\n',yuvimout);
    fclose(fid);
  • 相关阅读:
    如何学习掌握一门新技术
    Linux多线程编程(不限Linux)
    腾讯后台开发面试题2
    腾讯后台开发面试题
    【转】Linux杀死fork产生的子进程的僵尸进程defunct
    【转】Linux网络编程入门
    【转】揭开Socket编程的面纱
    【转】简单理解socket
    【转】404、500、502等HTTP状态码介绍
    【转】fread函数和fwrite函数
  • 原文地址:https://www.cnblogs.com/hythink/p/5224901.html
Copyright © 2011-2022 走看看