import torch
from torch.autograd import Variable
import torch.nn as nn
import cv2
import numpy as np
import matplotlib.pyplot as pltimg = cv2.imread("lena.jpg")
#cv2.imshow("Original", img)r,g,b = np.dsplit(img, 3) # 彩色图像拆分为rgb
#cv2.imshow('r', r)
#cv2.imshow('g', g)
#cv2.imshow('b', b)"""
数据维度格式化,(h,w,1) ---> (1,1,h,w)
h: 图像高度
w: 图像宽度
"""
# 将numpy格式化为tensor
r = torch.tensor(r)
g = torch.tensor(g)
b = torch.tensor(b)# 扩张维度(512,512,1) ---> (512,512,1,1)
r = torch.unsqueeze(r, 3)
g = torch.unsqueeze(g, 3)
b = torch.unsqueeze(b, 3)# 调整维度(512,512,1,1) ---> (1,1,512,512)
r = r.permute(2,3,0,1).to(torch.float32)
g = g.permute(2,3,0,1).to(torch.float32)
b = b.permute(2,3,0,1).to(torch.float32)
#imgs.to(torch.float32))conv = nn.Conv2d(1, 1, kernel_size=(3,3))r=Variable(r)
r=Variable(g)
r=Variable(b)rc = conv(r).detach().numpy()
gc = conv(g).detach().numpy()
bc = conv(b).detach().numpy()rc = torch.tensor(rc.squeeze(0))
gc = torch.tensor(gc.squeeze(0))
bc = torch.tensor(bc.squeeze(0))rc= rc.permute(1,2,0)
gc= gc.permute(1,2,0)
bc= bc.permute(1,2,0)combined = np.dstack((rc,gc,bc))
cv2.imshow("combined", combined)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果图:

因为卷积是随机的,所以每次最终combined的结果图也不一样

就在想,用卷积提取边缘是不是很nice?!就是速度不免慢了写,但是硬件设备跟上不久可以了!哈哈 后续会再次改进。。。

是自己一个字母一个字母码的,copy请注来源!!!!!

彩色图片按RGB通道分离,torch单通道卷积后,再合并相关推荐

  1. (一)彩色图片(RGB)转灰度图片

    彩色图片(RGB)转灰度图片 一.知识简介 RGB彩色图像在计算机中是使用R.G.B三个矩阵来存储红.绿.蓝三个颜色值.灰度图则是采用一个矩阵来存储灰度值(亮度,灰度值0表示亮度为0,看起来是黑色,同 ...

  2. python制作图片数据集_Pytorch自己加载单通道图片用作数据集训练的实例

    pytorch 在torchvision包里面有很多的的打包好的数据集,例如minist,Imagenet-12,CIFAR10 和CIFAR100.在torchvision的dataset包里面,用 ...

  3. 关于PCM音频重采样思路及注意事项(频率变换和通道数变换(单通道转双通道))

    最近在做一个语音广播的项目,实现语音广播的过程主要是:音频采集.音频编码.音频发送.音频解码和音频播放,这个过程在这里不展开说明,本文主要讲述其中的音频重采样和音频降噪的问题和记录如何解决的思路.本文 ...

  4. asp.net接受表单验证格式后再提交数据_如何解析 el-form-renderer 表单渲染器1.14.0...

    DEEPEXI 大前端 常人道,一入开发深似海,技术学习无止境.在新技术层出不穷的前端开发领域,有一群身怀绝技的开发,他们在钻研前沿技术的同时,也不忘分享他们的成果,回馈社区.下面,就由小水滴带大家看 ...

  5. asp.net接受表单验证格式后再提交数据_看滴普科技大前端如何玩转el-form-renderer 表单渲染器1.14.0

    DEEPEXI 大前端 常人道,一入开发深似海,技术学习无止境.在新技术层出不穷的前端开发领域,有一群身怀绝技的开发,他们在钻研前沿技术的同时,也不忘分享他们的成果,回馈社区.下面,就由小水滴带大家看 ...

  6. asp.net接受表单验证格式后再提交数据_创建一个注册界面,并记录到数据库中...

    demo开始时我们需要准备点东西 1.jQuery 可以去cdn.js上copy一个, 2.我们要安装好node.js, 因为需要自己搭建一个服务器去测试,32位,64位,下载后配置好就行 3.开始写 ...

  7. 在PictureBox加载图片时,显示等待,加载完毕后再显示真正的图片

    void Button1Click(object sender, EventArgs e) { //图片异步加载完成后的处理事件 pictureBox1.LoadCompleted += new As ...

  8. opencv分别显示彩色图片各通道图片

    #include<opencv2/opencv.hpp> #include<cv.h> using namespace cv; using namespace std;int ...

  9. 多通道(Multichannel)单通道(singlechannel)图像

    原博客链接:https://blog.csdn.net/futurewu/article/details/9945611 在做机器视觉包括相机视觉时,常常要将一个多通道图像分离成几个单通道图像或者将几 ...

最新文章

  1. 为何gpio_to_irq不能静态使用?【转】
  2. dreamweaver连接mysql数据库 发生一个不知名错误_用DREAMWEAVER连接数据库测试时总是弹出发生一个不知名的错误 你好! 请问一下这个问题你是怎么解的?...
  3. 在Linux下开发多语言软件: Hello GetText!
  4. 监督学习 | 线性回归 之多元线性回归原理及Sklearn实现
  5. python3 pygame 坦克自动移动
  6. “技术需求”与“技术成果”项目之间关联度计算模型 复赛top1解决方案
  7. 【编译原理笔记07】语法分析:SLR、LR(1)、LALR、二义性分析与错误处理
  8. 非度量多维排列 NMDS (Non-metric multidimensional scaling)分析
  9. 怎么在linux上网络功能,Linux系统如何通过手机GPRS功能无线上网
  10. 原创超简单代码(1.21.50)
  11. 瑞芯微RK3288处理器详细信息介绍(参数,规格,应用,差异)
  12. python 常用的几种定位方式
  13. 基于IntelliJ Idea的Scala开发demo一Spark开发demo
  14. uva714 Copying Books
  15. RK3399平台开发系列讲解(内核驱动外设篇)6.19、摄像头OV4689模组驱动代码分析
  16. 基恩士 sw1000 或2000(理论是通用)usb转RS232 USB60FW 驱动
  17. HTC-G4刷机过程
  18. MySQL之LOAD DATA
  19. 手把手教你用fairseq训练一个NMT机器翻译系统
  20. 章鱼网络,构建未来Web3弹性之网

热门文章

  1. cmd代码表白_抖yin上的表白代码是什么,可以这样写代码哦
  2. prometheus变量_详细解读 Prometheus 的指标类型
  3. MySQL 数据库实验二
  4. Java获取当前系统的年份
  5. Vuetify自定义变量
  6. 【目标检测系列】yolov3之损失函数以及边框回归pytorch源码注释以及理论理解
  7. 学习汽车美容必备知识。
  8. 综述:具有可重构智能表面的无人机:应用、挑战和机遇
  9. 如何读懂DataSheet
  10. 504 Gateway Time-out原因及解决方法