35-1.Python Paddlepaddle实现简单的黑白边界检测

目录​​​​​​​

1.问题介绍 

2.代码实例

3.输出结果

4.安装流程


1.问题介绍 

        下面是使用Conv2D算子("2D"表明卷积核是二维的,多用于处理图像数据)完成一个图像边界检测的任务。图像左边为光亮部分,右边为黑暗部分,目的是检测出光亮与黑暗的分界处

        设置宽度方向的卷积核为[1,0,-1],此卷积核会将宽度方向间隔为1的两个像素点的数值相减。当卷积核在图片上滑动时,如果它所覆盖的像素点位于亮度相同的区域,则左右间隔为1的两个像素点数值的差为0。

        只有当卷积核覆盖的像素点,有的处于光亮部分,有的处于黑暗部分。左右间隔为1的两个像素点数值的差不为0。将此卷积核作用到图片上,输出特征图片上只有对应光亮与黑暗分界线的地方像素值才不为0。

2.代码实例

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: 
# Also add the following code, 
# so that every time the environment (kernel) starts, 
# just run the following code: 
import sys 
sys.path.append('/home/aistudio/external-libraries')

import matplotlib.pyplot as plt
import numpy as np
import paddle
from paddle.nn import Conv2D
from paddle.nn.initializer import Assign
 

w = np.array([1,0,-1], dtype='float32')
w = w.reshape([1,1,1,3])
conv = Conv2D(in_channels = 1, out_channels = 1, kernel_size=[1,3],
        weight_attr = paddle.ParamAttr(
            initializer = Assign(value=w)
        ))

img = np.ones([50,50], dtype='float32')
img[:,30:] = 0.
#将图片形状调整为[N,C,H,W]的形式
x = img.reshape([1,1,50,50])
#将numpy.ndarray转化成paddle中的tensor
x = paddle.to_tensor(x)
#使用卷积算子作用在输入图片上
y = conv(x)
#将输出tensor转化为numpy.ndarray
out = y.numpy()
f = plt.subplot(121)
f.set_title('input image', fontsize = 15)
plt.imshow(img, cmap='gray')
f = plt.subplot(122)
f.set_title('output featuremap', fontsize=15)
plt.imshow(out.squeeze(), cmap = 'gray')
plt.show()

print(conv.weight)
print(conv.bias)

3.输出结果​​​​​​​​​​​​​​

4.安装流程

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

【深度学习基础】Mac系统安装Anaconda_骆先生的老屁的博客-CSDN博客_mac安装conda

 

pip镜像源配置升级 + python3版本切换 + Tensorflow和paddlepaddle安装大全 (MAC OSX)_Th3mess的博客-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Matlab中生成黑白条纹的方法有多种。一种方法是使用矩阵操作来生成黑白条纹的图像。可以使用以下代码来生成黑白条纹图片: ```matlab lines = 20; % 黑白条纹数量(20黑,20白) wid = 8; % 黑或白条纹的宽度(单位:像素,黑白条纹宽度一致) heit = 480; % 图像高度(像素) Rect = zeros(1, 2 * wid); % 生成(1*2wid)的0矩阵块(全黑) Rect(1 : wid) = ones(1, wid); % 矩阵块左半部分改成1(全白) Outpt = repmat(Rect, heit, lines); % 将Rect矩阵块复制成(heit*lines)块 imshow(Outpt); % 输出图片,保存即可 ``` 这段代码会生成一个黑白条纹的图像,其中`lines`表示黑白条纹的数量,`wid`表示黑或白条纹的宽度,`heit`表示图像的高度。你可以根据需要调整这些参数来生成不同样式的黑白条纹图片。\[1\] 另一种方法是使用第三方函数`applyhatch`来实现。你可以在Ben Hinkle的函数库中找到这个函数,也可以在MathWorks社区的文件交换中心找到。你需要将这个函数的代码复制到你的Matlab环境中,然后使用`applyhatch`函数来生成黑白条纹的图像。\[2\] 还有一种方法是使用`print`函数来生成黑白条纹的图像。你可以使用以下代码来生成黑白条纹图片: ```matlab h = figure; % 在这里绘制你想要生成黑白条纹的图形 % 将下面这行代码替换掉报错的代码 bits = print('-RGBImage'); imshow(bits); % 输出图片,保存即可 ``` 这段代码会将当前图形绘制成黑白条纹的图像,并使用`imshow`函数显示出来。你可以根据需要在`figure`函数中绘制你想要生成黑白条纹的图形。\[3\] #### 引用[.reference_title] - *1* [Matlab生成黑白条纹](https://blog.csdn.net/qq_47423582/article/details/105802724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [matlab画条纹填充(Hatched Fill)图 填坑 applyhatch hardcopy](https://blog.csdn.net/qq_40115871/article/details/112795805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值