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);
  • 相关阅读:
    数据结构第二篇——线性表的顺序存储
    数据结构第一篇——线性表的逻辑结构
    面向对象之工资管理系统
    #ifndef三件套与#pragma once
    i++与++i的区别
    struct与class的区别(分别在c和c++中)
    浅析数据结构
    K60
    更新整理本人所有博文中提供的代码与工具(Java,2013.08)
    [置顶] cocos2d实现CCLabelTTF真正字体描边效果
  • 原文地址:https://www.cnblogs.com/hythink/p/5224901.html
Copyright © 2011-2022 走看看