python 边界_如何在python中获取图像的边界像素?

获取边框像素:

掩模操作是获取图像边界像素的多种方法之一。代码如下:a= cv2.imread('cal1.jpg')

bw = 20 //width of border required

mask = np.ones(a.shape[:2], dtype = "uint8")

cv2.rectangle(mask, (bw,bw),(a.shape[1]-bw,a.shape[0]-bw), 0, -1)

output = cv2.bitwise_and(a, a, mask = mask)

cv2.imshow('out', output)

cv2.waitKey(5000)

在得到与输入图像具有相同维数的1数组后,我使用cv2.rectangle函数绘制一个由零组成的矩形。第一个参数是要绘制的图像,第二个参数是开始(x,y)点,第三个参数是结束(x,y)点。第四个参数是颜色,'-1'表示绘制的矩形的厚度(-1填充矩形)。您可以找到函数here的文档。在

现在我们有了掩码,您可以使用'cv2.bitwise_and'(documentation)函数对像素执行和操作。基本上会发生的是,在遮罩中有'1'个像素的像素,会保留它们的像素值。遮罩中为“0”个像素且具有“0”像素的像素将变为0。这样,您将得到如下输出:

cECvq.jpg。在

输入图像是:

yUmU9.jpg

你现在有边界像素了!在

使用LSB飞机来存储你的信息不是一个好主意。你想想就明白了。一个简单的有损压缩会影响大部分隐藏的数据。将图像保存为JPEG格式会导致信息丢失或严重影响信息。如果您还想尝试LSB,可以研究位平面切片。通过位平面切片,基本上可以获得图像的位平面(从MSB到LSB)。3dbnh.png(图片来自researchgate.net)在

我在Matlab中做过,但不太确定用python做。在Matlab中,

函数“bitget(image,1)”返回图像的LSB。我在使用pythonhere进行位平面切片时发现了一个问题。虽然没有答案,但您可能需要查看发布的代码。在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值