opencv学习--图像处理基础

2023-11-10

将图片处理为灰度图

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


img=cv2.imread("./111.jpg",0);
cv2.imshow('image',img)
cv2.waitKey(10000);
cv2.destroyAllWindows()

在这里插入图片描述

创建一个矩阵,来模拟黑色图像

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab

img=np.zeros((100,100),dtype=np.uint8); #创建一个8x8的全零数组
print("img=\n",img)
cv2.imshow('image',img)
cv2.waitKey(10000);
cv2.destroyAllWindows();

在这里插入图片描述

某一个区域赋值为255,也就是白色

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab

img=np.zeros((100,100),dtype=np.uint8); #创建一个8x8的全零数组
print("img=\n",img)
cv2.imshow('image',img)
cv2.waitKey(1000);
cv2.destroyAllWindows()

for i in range(30,60):
    for j in range(30,60):
        img[i][j] = 255

cv2.imshow('image',img)
cv2.waitKey(10000);
cv2.destroyAllWindows()

在这里插入图片描述

输出蓝色照片

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue=",blue)
cv2.imshow('image',blue)
cv2.waitKey(10000)
cv2.destroyAllWindows();

在这里插入图片描述

蓝色转灰度

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue=",blue)
cv2.imshow('image',blue)
cv2.waitKey(10000)
gray=cv2.cvtColor(blue,cv2.COLOR_BGR2GRAY) #将BGR转换成RGB
cv2.imshow('image',gray)
cv2.waitKey(10000)
cv2.destroyAllWindows();

在这里插入图片描述

RGB2BGR

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue=",blue)
cv2.imshow('image',blue)
cv2.waitKey(10000)
gray=cv2.cvtColor(blue,cv2.COLOR_RGB2BGR) #将BGR转换成RGB
cv2.imshow('image',gray)
cv2.waitKey(10000)
cv2.destroyAllWindows();

截取部分图像

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


img=cv2.imread('./111.jpg')
jpg=img[0:200,0:200]
cv2.imshow('image',jpg)
cv2.waitKey(10000)
cv2.destroyAllWindows();

在这里插入图片描述

颜色通道提取

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab

img=cv2.imread('./111.jpg')
b,g,r=cv2.split(img)
print("r=",r)
print("r.shapr=",r.shape)
print("g=",g)
print("g.shapr=",g.shape)
print("b=",b)
print("b.shapr=",b.shape)

在这里插入图片描述

通道合并

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


img=cv2.imread('./111.jpg')
b,g,r=cv2.split(img)
img=cv2.merge((b,g,r))
print("img.shape=",img.shape);

在这里插入图片描述

按照索引拆分

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


img=cv2.imread('./111.jpg')
b=img[:,:,0]
g=img[:,:,1]
r=img[:,:,2]
print("r=",r)
print("r.shapr=",r.shape)
print("g=",g)
print("g.shapr=",g.shape)
print("b=",b)
print("b.shapr=",b.shape)

在这里插入图片描述

分别只保留r,g,b通道

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


img=cv2.imread('./111.jpg')
copy_img = img.copy()
# 0,1,2
copy_img[:,:,0] = 0;
copy_img[:,:,1] = 0;
cv2.imshow('image',copy_img)
cv2.waitKey(10000)
cv2.destroyAllWindows();

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

颜色通道合成对比

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab


img=cv2.imread('./111.jpg')
b,g,r=cv2.split(img)
img=cv2.merge((b,g,r)) # b,g,r
print("img.shape=",img.shape);
cv2.imshow('image',img)
cv2.waitKey(10000)
cv2.destroyAllWindows();
img=cv2.merge((r,g,b))   #r,g,b
print("img.shape=",img.shape);
cv2.imshow('image',img)
cv2.waitKey(10000)
cv2.destroyAllWindows();

b,g,r
在这里插入图片描述
r,g,b
在这里插入图片描述

获取图像属性

import os
import re
import cv2

from PIL import Image
import numpy as np
import matplotlib.pylab as pylab

gray_lena=cv2.imread("./111.jpg",0) #获取灰色lena
color_lena=cv2.imread("./111.jpg",-1) #获取BGR彩色lena
print("灰度图像属性")
print("gray_lena.shape={}".format(gray_lena.shape))
print("gray_lena.size={}".format(gray_lena.size))
print("gray_lena.dtype={}".format(gray_lena.dtype))

print("彩色图像lena属性:")
color_lena=cv2.cvtColor(color_lena,cv2.COLOR_BGR2RGB)
pylab.imshow(color_lena)
print("color_lena.shape={}".format(color_lena.shape))
print("color_lena.size={}".format(color_lena.size))
print("color_lena.dtype={}".format(color_lena.dtype))

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opencv学习--图像处理基础 的相关文章

  • 在 Python 3.5 64 位上通过 pip 安装 OpenCV

    我尝试安装 OpenCV 但找不到任何合适的 pip 软件包 我决定上网查找有关如何安装它的官方文档 并发现this https opencv python tutroals readthedocs io en latest py tuto
  • Opencv matchTemplate 和 np.where():仅保留唯一值

    继带有马里奥硬币的 opencv 教程 https opencv python tutroals readthedocs io en latest py tutorials py imgproc py template matching p
  • 使用 opencv warpPerspective() 生成道路的自上而下视图

    我正在尝试实施逆透视映射计算与道路上另一辆车的距离 我知道在应用该函数之前我需要生成一个包含源点和目标点的变换矩阵warpPerspective 但我不知道如何计算目的地点 我在这个论坛和其他网站中搜索 但无法将第一张图片转换为第二张图片
  • 在 RGB 图像上绘制多类语义分割透明叠加

    我有语义分割掩码的结果 值在 0 1 之间 需要大津阈值来确定什么是积极的 我想直接在 RGB 图像上绘制 在 RGB 图像上每个预测类具有不同的随机颜色 我使用以下内容绘制了具有单一颜色的单个蒙版 是否有一个包或简单的策略可以为多类别做到
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 如何计算图像中的 RGB 或 HSV 通道组合?

    我使用 python opencv 加载形状为 30 100 3 的图像 现在想要按颜色计算所有颜色的频率 我不是指单个通道 而是指通道组合 含义 3 个频道列表 例如 255 0 0 表示红色 255 255 0 表示黄色 100 100
  • 使用Python的工业视觉相机[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • OpenCV 3 中的 FLANN 错误

    我运行的是 Ubuntu 14 04 我正在尝试使用 openCV 3 运行 FLANN 但出现错误 下面的所有内容都是通过使用 AKAZE 和 ORB 进行尝试的 但代码来自我尝试使用 ORB 的情况 我使用 ORB 来查找描述符和关键点
  • opencv 2.3.* 读取不工作

    我无法让 imread 工作 与这个人有同样的问题 OpenCV imwrite 2 2 在 Windows 7 上导致异常 并显示消息 OpenCV 错误 未指定错误 无法找到指定扩展名的编写器 https stackoverflow c
  • 当我将鼠标移到 Mat 关键字上时,Visual Studio 2017 冻结(OpenCv 3.4.1)

    我想在 Visual Studio 2017 中开发 openCv 项目 我下载了 opencv 预构建库并进行了必要的设置 那是 1 我添加了系统路径 build x64 vc14 bin 2 在 Visual Studio 中的项目属性
  • 使用 ffmpeg 或 OpenCV 处理原始图像

    看完之后维基百科页面 http en wikipedia org wiki Raw image format原始图像格式 是任何图像的数字负片 为了查看或打印 相机图像传感器的输出具有 进行处理 即转换为照片渲染 场景 然后以标准光栅图形格
  • 仅获取图像中的外部轮廓

    我有这段代码 可以在图像中绘制轮廓 但我只需要外部轮廓 import cv2 import numpy as np camino C Users Usuario Documents Deteccion de Objetos 123 jpg
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • 使用 OpenCV 改进特征点匹配

    我想匹配立体图像中的特征点 我已经用不同的算法找到并提取了特征点 现在我需要一个良好的匹配 在本例中 我使用 FAST 算法进行检测和提取 BruteForceMatcher用于匹配特征点 匹配代码 vector lt vector
  • 如何确定与视频中物体的距离?

    我有一个从行驶中的车辆前面录制的视频文件 我将使用 OpenCV 进行对象检测和识别 但我停留在一方面 如何确定距已识别物体的距离 我可以知道我当前的速度和现实世界的 GPS 位置 但仅此而已 我无法对我正在跟踪的对象做出任何假设 我计划用
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示
  • cv2.drawContours() - 取消填充字符内的圆圈(Python,OpenCV)

    根据 Silencer的建议 我使用了他发布的代码here https stackoverflow com questions 48244328 copy shape to blank canvas opencv python 482465
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here

随机推荐

  • docker搭建的mysql8.0中文乱码问题

    手把手教你如何在mysql 中使用中文编码 1 首先在docker中拉取好一个最新的mysql镜像以后 创建一个容器 docker run d p 13306 3306 e MYSQL ROOT PASSWORD xxxxxx name M
  • Hadoop的安装与配置(非常重要)

    官方的原生配置文档Hadoop3 1 0 HDFS的组成 NameNode secondaryNameNode DataNode 这是以主从模式来运行的 前两个在maser节点上 最后一个在slave节点上 1 解压hadoop安装包 要学
  • jQuery--全选全不选功能

    function 全选不选功能模块 checkall change function console log this prop checked 让俩个全选按钮同时生效 当点击checlall时候 this prop checked 为tr
  • Bug:Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs

    问题描述 Android Studio 3 6 3版本 运行之前项目时 项目可正常编译出apk文件 但无法自动安装到设备 手动通过命令行将apk安装到设备 也存在无法调试的问题 问题展示 解决方法 1 对Android Studio进行降级
  • M - Marbles Lucky Distribution(贪心)

    M Marbles Lucky Distributionhttps vjudge csgrandeur cn problem Gym 101845M Juan have N red marbles M blue marbles and K
  • 用定时器设计门铃,按下按键时蜂鸣器发出叮咚的门铃声

    叮咚 产生的方式 仿真 程序代码 include
  • 作为一个江苏人,我眼中的苏宁

    江苏人 人人都在苏宁电器的地面商店里买过东西 我也不例外 听说张近东要转让苏宁易购的股份给一家疑似国企或国有基金 作为一个地道的江苏人 感慨良多 中国有4个电商平台 天猫 京东 拼多多和苏宁易购 还有大商 国美什么 已经彻底掉队 暂且不提
  • 推荐你个软件 TDengine

    推荐你个软件 https github com taosdata TDengine 时序数据库 效率非常高 https constd com 2019 07 26 tdengine doc https www taosdata com cn
  • Linux 桌面虚拟化技术 KVM

    KVM 是 Kernel based Virtual Machine 的简称 是一个开源的系统虚拟化模块 自Linux 2 6 20之后集成在Linux的各个主要发行版本中 它使用Linux自身的调度器进行管理 所以相对于Xen 其核心源码
  • Easylogging介绍和简单使用

    一 Easylogging简介 Easyloggingpp是一个C 开源log库 其在github的地址 https github com muflihun easyloggingpp Easyloggingpp最大的特点是只需一个头文件
  • 最全面计算机英语单词列表(四)

    作为一名开发者 不管是自己写代码还是阅读英文文档 英语水平对于开发进度有很大的影响 业余时间简单整理了计算机开发中常见的英语单词 不限于前端开发 再此和朋友们分享 单词较多 为了阅读体验良好分成几个部分 下面是其他部分的链接 最全面计算机英
  • go get 与git clone的区别

    一直对go get 和git clone 区别不开 go get 的参数说明 d 只下载不安装 f 只有在你包含了 u参数的时候才有效 不让 u去验证import中的每一个都已经获取了 这对于本地fork的包特别有用 fix 在获取源码之后
  • 布局优化之ViewStub原理

    1 概述 在进行Android程序开发时 除了要实现基本功能外 还要关注应用的性能 内存占用少 程序稳定 响应速度快等 懒加载 就是为了让程序尽可能快地启动而提出的一个优化策略 即让那些对用户不重要或者不需要立即显示的布局控件做延迟加载 只
  • Linux下进程与多线程之间的共享资源

    在Linux 下 程序或可执行文件是一个静态的实体 它只是一组指令的集合 没有执行的含义 进程是一个动态的实体 有自己的生命周期 线程是操作系统进城调度器可以执行的最小执行单元 同一个进程中的各个线程都有自己独立的线程ID 用来标识线程 如
  • 使用jsPlumb制作流程图设计器

    jsPlumb是一个比较强大的绘图组件 它提供了一种方法 主要用于连接网页上的元素 在现代浏览器中 它使用SVG或者Canvas技术 而对于IE8以下 含IE8 的古董浏览器 则使用VML技术 项目主页 http jsplumbtoolki
  • PCL 常用小知识

    目录 零 保存点云 一 时间计算 二 已知需要保存点的索引 从原点云中拷贝点到新点云 三 删除无效点 四 pcl PointCloud Ptr和pcl PointCloud的两个类相互转换 五 计算点云中心点 六 将vector型索引转换成
  • scikit-learn 逻辑回归--调参

    代码笔记 from sklearn linear model import LogisticRegression as LR from sklearn datasets import load breast cancer import nu
  • CTFshow web15

    ctf show 萌新模块 web15关 这一关是代码执行漏洞 需要灵活的运用PHP的命令执行函数 在上一关的基础上又过滤了 gt 关键字 看起来已经没啥思路了 但仔细一看 它居然取消了对分号 的过滤 这样一来就好办了 继续上一关的曲线救国
  • IDEA中打jar包的方式

    在讲这两种方式之前 我们先来说明一下什么是java中的jar文件 jar Java Archive File 翻译过来就是java的档案文件 它其实也类似于我们windows下的zip文件 唯一的区别就是在 JAR 文件的内容中 包含了一个
  • opencv学习--图像处理基础

    将图片处理为灰度图 import os import re import cv2 from PIL import Image import numpy as np import matplotlib pylab as pylab img c