matlab数字图像处理的集合操作

图像的集合操作是针对灰度图像进行的,包括交集运算、并集运算和补集运算。令两张同样大小的灰度图像元素分别用集合A和集合B表示,集合A的元素的三元组形式为(x,y,a),其中x,y是坐标,a是灰度值;集合B的元素的三元组形式为(x,y,b),其中x,y是坐标,a是灰度值。则定义:

1.图像A、B的交集运算定义为图像对应位置的像素值取a,b中的较小值。

A\bigcap B=\left \{ (x,y,min(a,b),a\epsilon A,b\epsilon B) \right \}

2.图像A、B的并集运算定义为图像对应位置的像素值取a,b中的较大值。

A\bigcup B=\left \{(x,y,max(a,b),a\epsilon A,b\epsilon B) \right \}

3.图像A的补集运算定义为一个常数k与图像中每个像素的灰度差值,其中常数k一般取全白色对应的像素值(0-1就取1,0-255就取255),这样结果图像就会黑白翻转,当然k也可以根据具体需要随便取值。

A^{c}=\left \{ (x,y,k-a),a\epsilon A \right \}

matlab代码如下:

函数定义代码:

function out=image_set
    out.set_intersect=@set_intersect;
    out.set_union=@set_union;
    out.set_comple=@set_comple;
end

%交集
function img=set_intersect(f1,f2)%f1,f2为输入的两幅同样大小的图像,后续函数也一样
    img=min(f1,f2);
end

%并集
function img=set_union(f1,f2)
    img=max(f1,f2);
end

%补集
function img=set_comple(f)
    img=1-f;  %这里默认输入图像f是0-1范围的,所以常数k为最大值1,结果就是黑白翻转
end

运行代码:

f1=imread('yama.jpg');%读取一个名为yama的jpg图像,但要保证该图像文件与当前程序在同一目录下
f1=mat2gray(f1,[0,255]);%把图像像素值0-255压缩到0-1,便于后续图像操作
figure1=figure;%画布1,以此类推
imshow(f1)%展示原始图像,对于像素值为0-1模式的,若有大于1或小于0的像素点,imshow函数均按1或0处理

f2=imread('yama.jpg');
f2=mat2gray(f2,[0,255]);
f2=f2./2;%将原图像的像素值全都变为原来的一半(不是什么特定的要求,只是为了改变像素值便于观察操作结果,本质上也可以随意改变像素值)
figure2=figure;%画布2,以此类推
imshow(f2);%展示原始图像的像素值全都变为原来一半后的图像

fun=image_set;%调用另一个文件

int_img=fun.set_intersect(f1,f2);
figure3=figure;
imshow(int_img)%展示两张图像的交集结果

uni_img=fun.set_union(f1,f2);
figure4=figure;
imshow(uni_img)%展示两张图像的并集结果

com_img1=fun.set_comple(f1);%原始图像的补集
com_img2=fun.set_comple(f2);%原始图像像素值缩小一倍后图像的补集
figure5=figure;
imshow(com_img1)%展示原始图像的补集结果
figure6=figure;
imshow(com_img2)%展示原始图像像素值缩小一倍后图像的补集结果

运行结果:

原图像:

像素值缩小一倍后的图像:

 可以看到像素值变小后,图像整体偏暗。

两张图像交集运算结果(取像素值小的像素):

 

两张图像并集运算结果(取像素值大的像素):

 原图像补集运算结果:

 图像像素黑白翻转。

原图像像素值缩小一倍后图像的补集运算结果:

 

感谢阅读!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金泽遗梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值