图像像素的算术操作

图像可以进行算术操作。

可以进行加减乘除,改变图像的像素。

比如可以让每一幅图像所有的像素点的像素值都加50,那么这幅图像就会变得更亮。

如果让幅图像所有的像素点的像素值都减50,那么这幅图像就会变得更暗。

import cv2
import numpy


#t图像像素的算术操作
img=cv2.imread('aniya.jpg',cv2.IMREAD_REDUCED_COLOR_2)
blank=numpy.zeros_like(img) #创建一个和img高宽一样的黑色图像

blank[:,:,:]=[50,50,50] #给blank图像的每一个b、g、r(蓝绿红)分别都赋上50的值
result_add=cv2.add(img,blank)   #将img和blank的每一个像素值都进行加法操作,相当于img的每一个像素值都加上了50
result_subtract=cv2.subtract(img,blank) #将img和blank的每一个像素值都进行减法操作,相当于img的每一个像素值都减上了50

#除了加减外,还有乘和除,分别是用关键字multiply(乘)、divide(除)。


#显示图像
cv2.imshow('img',img)
cv2.imshow('blank',blank)
cv2.imshow('result_add',result_add)
cv2.imshow('result_subtract',result_subtract)



#查看图像信息
print(img.shape)
cv2.waitKey(0)
cv2.destroyAllWindows()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像算术编码是一种用来压缩图像数据的方法,它将图像中的像素值通过一系列的算术运算转换为一串二进制编码。Matlab是一种强大的数值计算和图像处理软件,它提供了丰富的函数和工具箱,用于实现图像算术编码。 在Matlab中,我们可以使用一些基本的函数来实现图像算术编码。首先,我们需要将图像转换为灰度图像,并将像素值归一化到0至1之间。然后,我们可以将图像像素值分为不同的区间,并为每个区间分配一个二进制编码。这个编码可以是固定长度的,也可以是可变长度的。 为了实现固定长度编码,我们可以使用bitget函数来获取像素值对应的二进制编码,然后将它们按照固定的位数组合起来。对于可变长度编码,我们可以使用霍夫曼编码来实现。Matlab提供了一个huffmandict函数来创建霍夫曼编码字典,然后我们可以使用huffmanenco函数将图像像素值转换为相应的可变长度二进制编码。 在实际应用中,我们还可以对图像进行预处理以提高压缩效率。例如,我们可以使用离散余弦变换(DCT)对图像进行变换,然后再进行算术编码。这样可以利用图像的频域特性来更好地压缩图像数据。 总而言之,Matlab提供了许多函数和工具,用于实现图像算术编码。通过使用这些函数和工具,我们可以对图像进行高效的压缩,以减小图像文件的大小,从而节省存储空间和提高传输效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值