机器视觉——图像投影(代码片段)

zhangmingfeng zhangmingfeng     2023-04-09     537

关键词:

什么是图像投影

  要实现图像投影操作,我们首先要弄清楚什么是投影。图像投影分为水平投影和垂直投影:水平面方向的正投影叫水平投影,水平投影是指二维图像按行向y轴方向投影;垂直投影是指二位图像按列向x轴方向投影,投影的结果可以看成事一维图像。

 

  对于一个二维图像来说,投影是将图像二值化后的像素点按某一方向堆叠,了解了这个原理后,就可以写出图片投影的代码:

水平投影:

import cv2
import numpy as np
img=cv2.imread(‘123.jpg‘)
cv2.imshow(‘origin‘,img)
cv2.waitKey(0)
grayimg=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
img1,thres=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)
img1,thres1=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)
(h,w)=thres.shape
a=[0 for i in range(0,w)]
for j in range(0,w):
    for i in range(0,h):
        if thres[i,j]==0:
            a[j]+=1
            thres[i,j]=255
for j in range(0,w):
    for i in range((h-a[j]),h):
        thres[i,j]=0
cv.imshow(‘chuizhi‘,thres)
cv.waitKey(0)

技术图片

 

 

垂直投影

import cv2
import numpy as np
img=cv2.imread(‘123.jpg‘)
cv2.imshow(‘origin‘,img)
cv2.waitKey(0)
grayimg=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
img1,thres=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)
img1,thres1=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)
(h,w)=thres.shape
a=[0 for i in range(0,w)]
for j in range(0,w):
    for i in range(0,h):
        if thres[i,j]==0:
            a[j]+=1
            thres[i,j]=255
for j in range(0,w):
    for i in range((h-a[j]),h):
        thres[i,j]=0
cv.imshow(‘chuizhi‘,thres)
cv.waitKey(0)

技术图片

 

 

其中

grayimg=cv.cvtColor(img,cv.COLOR_BGR2GRAY)

img1,thres=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)

img1,thres1=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)

这三行代码是由于后续操作中我们需要用到图像的长宽像素数据,但通过shape函数得到的数据除了长宽数据外还有图像的深度数据,这一项数据是我们不需要的,所以需要通过上述三行代码除去图像的深度数据。

 

这次的实验到这里就结束了,希望看了这个实验的你可以自己动手实践一下。

图像处理分析与机器视觉第二章

     第二章是数字图像及其性质,开篇介绍了一些基本概念和数学工具。        首先提出了一个问题,那就是透视投影,在将3D的物体经过透视投影和转化为2D图像时,损失了大量... 查看详情

机器视觉halcon中图像获取(代码片段)

00.目录文章目录00.目录01.概述02.相机接口2.1USB接口2.2IEEE1394接口2.3CameraLink接口2.4GigE千兆以太网接口2.5CoaXPress接口2.6Nbase-T接口2.7光纤接口03.Halcon图像采集过程3.1打开设备3.2设置相机参数3.3获取图像3.4结束采集图像04.Halcon相机助手0... 查看详情

图像处理——基于机器视觉技术的人脸在线识别系统设计(代码片段)

  基于机器视觉技术的人脸在线识别系统设计  本设计研究人脸检测与识别技术,在基于机器视觉技术上,构建了一套人脸在线检测识别系统,系统将由以下几个部分构成:计算机图像预处理、数据收集和预处理、人脸... 查看详情

python机器视觉--opencv进阶(核心)--图像二值化(代码片段)

1.图像二值化1.1图像全局二值化二值化:将图像的每个像素变成两种值,比如0,255.threshold(src,thresh,maxval,type[,dst])src最好是灰度图thresh:阈值maxval:最大值,最大值不一定是255type:操作类型.常见操作类型如下:简单解释:1.若图片数值大... 查看详情

全球机器视觉市场规模持续上涨,poe图像采集卡为工业相机提供高速传输通道(代码片段)

...MarketsandMarkets公布的数据,从2010年至2020年,全球机器视觉市场规模呈现不断上升的趋势。截止到2020年,全球机器视觉市场规模达107亿美元,近5年复合增速达14.48%。在制造工业中机器视觉技术的应用无异于一场智... 查看详情

火炉炼ai机器学习051-视觉词袋模型+极端随机森林建立图像分类器(代码片段)

【火炉炼AI】机器学习051-视觉词袋模型+极端随机森林建立图像分类器(本文所使用的Python库和版本号:Python3.6,Numpy1.14,scikit-learn0.19,matplotlib2.2)视觉词袋模型(BagOfVisualWords,BOVW)来源于自然语言处理中的词袋模型(BagOfWords,BOW),... 查看详情

机器视觉行业实践技巧--opencv技巧与方法:代码脚手架--图像处理(代码片段)

文章大纲图像处理摄像头计数视频转图片视频播放速度更改后保存USB4K高清免驱摄像头windows下无法修改分辨率?OpenCV图片处理-添加文字OpenCV同时拼接两个摄像头OpenCV视频关键帧提取OpenCV图像截取、裁切OpenCV坐标拾取参考文献与... 查看详情

第05课:cnn在机器视觉中的应用——图像分类(代码片段)

从本节课开始,我们将陆续为大家介绍在工业界使用较多的几种神经网络结构。首先介绍的是卷积神经网络(ConvolutionNeuralNetwork,CNN)。本节课核心内容包括:卷积神经网络发展历史回顾卷积与池化卷积神经... 查看详情

opencv图像识别初探-50行代码教机器玩2d游戏(代码片段)

最近在研究OpenCV,希望能通过机器视觉解决一些网络安全领域的问题。本文简要介绍如何通过OpenCV实现简单的图像识别,并让计算机通过“视觉”自动玩一个简单的2D小游戏,文末有视频演示及完整代码。 0x01OpenCV介绍O... 查看详情

机器视觉学习笔记最近邻插值实现图片任意角度旋转(c++)(代码片段)

目录原理源码RotateImage主函数效果完整源码速度优化源码优化效果平台:Windows1020H2VisualStudio2015OpenCV4.5.3本文算法改进自图形算法与实战:6.图像运动专题(5)图像旋转-基于近邻插值的图像旋转——进击的CV原理  ... 查看详情

计算机视觉数字图像与机器视觉基础(代码片段)

目录一、位图文件分析1.什么是位图2.BMP位图文件3.BMP文件结构4.位图文件头5.位深度6.不同位深度图像对比二、对比不同文件格式的图片文件大小三、基于奇异值分解(SVD)提取图片特征值四、开闭运算检测图像中硬币和细胞的个数1... 查看详情

机器视觉行业实践技巧(代码片段)

...频播放速度更改后保存参考文献与学习路径光源的使用在机器视觉检测时,经常会遇到需要检测反光的物品,例如:金属、铝箔表面、反光膜片、光滑表面的物品等,这类物品都有同样的特点,就是会发出炫光,这样在检测的时... 查看详情

机器视觉行业实践技巧(代码片段)

...频播放速度更改后保存参考文献与学习路径光源的使用在机器视觉检测时,经常会遇到需要检测反光的物品,例如:金属、铝箔表面、反光膜片、光滑表面的物品等,这类物品都有同样的特点,就是会发出炫光,这样在检测的时... 查看详情

roi(代码片段)

1.ROI简介  ROI(regionofinterest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种... 查看详情

光栅投影三维重建(代码片段)

...获取到的条纹图像作为三维信息的载体加以分析,由视觉原理得到物体的表面信息, 查看详情

数学之路-python计算实战-机器视觉-图像产生加性零均值高斯噪声(代码片段)

图像产生加性零均值高斯噪声,在灰度图上加上噪声,加上噪声的方式是每个点的灰度值加上一个噪声值,噪声值的产生方式为Box-Muller算法生成高斯噪声。在计算机模拟中,经常需要生成正态分布的数值。最基本... 查看详情

疾病检测基于matlab机器视觉黑色素瘤皮肤癌检测含matlab源码1689期(代码片段)

一、数字图像处理简介图像处理基础教程链接1【基础教程】基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)【含Matlab源码834期】2【基础教程】基于matlab图像处理࿰... 查看详情

图像处理分析与机器视觉读书笔记-------第二章图像及其表达与性质

2.1图像表达若干概念   图像和信号常用数学模型来描述。连续图像函数   图像函数的值对应于图像点的亮度。人类眼睛视网膜或者TV摄像传感器上的图像本身是两维的(2D)。我们将这种记录了明亮度信息... 查看详情