matlab-对比两张图片的Ycbcr分量的差值并形成直方图

%对比两张图片的Ycbcr分量的差值并形成直方图,改个路径就能用,图片分辨率要一致

close all;

clear all;

clc;

I1=imread('E:\test\resources\image\1.jpg');

I2=imread('E:\test\resources\image\2.jpg');

ycbcr1 = rgb2ycbcr(I1);

ycbcr2 = rgb2ycbcr(I2);

% 提取色度分量,Y(亮度),Cb 和 Cr(色差):色度或色差分量。Cb 表示蓝色和亮度之间的差异,而 Cr 表示红色和亮度之间的差异。

Y1 = ycbcr1(:, :, 1);

cb1 = ycbcr1(:, :, 2);

cr1 = ycbcr1(:, :, 3);

Y2 = ycbcr2(:, :, 1);

cb2 = ycbcr2(:, :, 2);

cr2 = ycbcr1(:, :, 3);

%显示彩色图像

figure;

subplot(141);%拿subplot(221)来说,就是一个2*2的矩阵画布,1代表图片处于第一个位置:

imshow(I1);

%R分量灰度图

subplot(142);imshow(Y1);

%G分量灰度图

subplot(143);imshow(cb1);

%B分量灰度图

subplot(144);imshow(cr1);

figure;

subplot(141);%拿subplot(221)来说,就是一个2*2的矩阵画布,1代表图片处于第一个位置:

imshow(I2);

%R分量灰度图

subplot(142);imshow(Y2);

%G分量灰度图

subplot(143);imshow(cb2);

%B分量灰度图

subplot(144);imshow(cr2);

Y_fault=abs(Y1-Y2);

cb_fault=abs(cb1-cb2);

cr_fault=abs(cr1-cr2);

figure;

%显示红色分辨率下的直方图

subplot(131);

imhist(Y1);

%显示红色分辨率下的直方图

subplot(132);

imhist(cb1);

%显示红色分辨率下的直方图

subplot(133);

imhist(cr1);

figure;

%显示红色分辨率下的直方图

subplot(131);

imhist(Y2);

%显示红色分辨率下的直方图

subplot(132);

imhist(cb2);

%显示红色分辨率下的直方图

subplot(133);

imhist(cr2);

figure;

%显示红色分辨率下的直方图

subplot(131);

imhist(Y_fault);

%显示红色分辨率下的直方图

subplot(132);

imhist(cb_fault);

%显示红色分辨率下的直方图

subplot(133);

imhist(cr_fault);

相关推荐
gihigo199833 分钟前
MATLAB使用遗传算法解决车间资源分配动态调度问题
算法·matlab
路长冬35 分钟前
matlab与数字信号处理的不定期更新
开发语言·matlab·信号处理
机器学习之心1 天前
基于双向时序卷积网络与门控循环单元(BiTCN-GRU)混合模型的时间序列预测MATLAB代码
网络·matlab·gru·bitcn-gru
雨洛lhw1 天前
matlab设计滤波器详解
matlab·低通滤波器·滤波器设计流程
熊猫_豆豆1 天前
MATLAB水滴下落湖水面泛起涟漪仿真
开发语言·matlab·水滴仿真
MATLAB代码顾问2 天前
MATLAB实现模糊PID控制
开发语言·matlab
熊猫_豆豆2 天前
嫦娥号地月轨道、环月(一个月)MATLAB仿真
开发语言·matlab
fie88893 天前
基于MATLAB的LBFGS优化算法实现
算法·matlab
wuk9984 天前
基于有限差分法的二维平面热传导模型MATLAB实现
开发语言·matlab·平面
csdn_aspnet4 天前
分享MATLAB在数据分析与科学计算中的高效算法案例
算法·matlab·数据分析