图像处理
文章平均质量分 70
图像处理相关方法介绍,包括opencv、PIL等库的使用
宗而研之
计算机视觉应用开发及部署方向
展开
-
makefile opencv的案例
案例一CXX = g++LIBS +=`pkg-config --libs opencv`INC +=`pkg-config --cflags opencv`CPPFLAGS += -g -std=c++11 -WallSRCS = detect.cppTARGET = detectOBJS = detect.o$(TARGET):$(OBJS) $(CXX) $(INC) $(CPPFLAGS) $(OBJS) -o $(TARGET) $(LIBS)$(OBJS):%.转载 2022-03-16 15:34:09 · 844 阅读 · 0 评论 -
ffmpeg之图片串流h264视频
0 背景在图像开发过程中,需要将图片编码成视频做一些测试,使用 opencv 是一种方式,但是默认不支持 h264 编码格式,还需要做一次转换,而使用 ffmpeg 指令可以快速实现这一功能,减少开发量1 环境配置本文在嵌入式 linux 系统中做测试,使用 apt 安装即可sudo apt install ffmpeg2 测试指令格式ffmpeg -f image2 -i /home/nvidia/images/image%d.jpg -vcodec libx264 -r.原创 2022-02-21 15:31:48 · 3237 阅读 · 0 评论 -
PaddleOCR之模型介绍与测试
在上一篇文章中,对 PaddleOCR 的功能进行了尝鲜,感觉还不错,但调参的时候发现通过 pip 安装的包支持的模型算法有限,无法满足使用需求,因此需要下载源码进行安装测试,本文对该方法进行一个介绍原创 2021-12-09 14:51:55 · 11958 阅读 · 0 评论 -
PaddleOCR之安装测试
0 背景paddleocr 号称最强,怀着好奇心,对该软件进行一个安装测试1 安装创建一个虚拟环境conda create -n paddle_env python=3.8进入环境,安装 gpu 版本的 paddlepaddleconda activate paddle_envpython3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple再安装 paddleocrpip i原创 2021-12-08 15:55:34 · 4210 阅读 · 0 评论 -
OpenCV中GPU模块使用
CUDA基本使用方法在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下:1.主机代码执行;2.传输数据到GPU;3.确定grid,block大小;4.调用内核函数,GPU运行程序;5.传输结果到CPU;6.继续主机代码执行。下图是两个向量相加的简单示例程序和处理流图。注意的问题:cu,cpp文件的组织内核函数和其wrapper函数置于cu文件中。在cpp文件声明wrapper函数,并调用wrapper函数。wrapper函数的声明定转载 2021-06-29 10:00:41 · 7066 阅读 · 0 评论 -
Linux 之查看 OpenCV 版本并卸载重装
在用GStreamer读取网络相机rtsp流数据时,需要用到3.4.0版本的OpenCV,但TX2刷机时预装了3.1.0版本的OpenCV,因此需要卸载掉并重新安装。原创 2018-05-15 18:53:26 · 9807 阅读 · 2 评论 -
Ubuntu之搭建nginx图片服务器
参考:https://blog.csdn.net/xingbake111/article/details/894890320 背景客户端访问服务器端图片时,需要在服务器端部署图片服务器,本文采用nginx的方案1 安装nginx建议采用源码安装nginx,这样配置文件比较全,如果使用apt-get安装过nginx,建议先卸载掉,卸载方式如下#su到超级用户rm -rf /e...原创 2019-07-15 15:09:39 · 3281 阅读 · 0 评论 -
利用windows画图工具进行图片拉伸
项目背景:利用线阵相机采集的设备图片,由于速度没有匹配好,导致图片变形。由于知道设备的长宽比,因此,可结合windows的画图工具以及简单的几行python脚本,实现对图片的拉伸。采集到的原图如下:通过查询设备厂商的信息,得知该设备的长宽是450×260,因此只需要知道该设备在图片中的像素位置,即可计算出拉伸比例。python代码如下:from __future__ import...原创 2018-10-23 16:31:00 · 22089 阅读 · 0 评论 -
Python之遍历文件夹图片并重命名
参考:https://blog.csdn.net/zhyh1435589631/article/details/51788350在做深度学习相关项目时,需要标注图片,筛选过后图片名字带有括号,显得比较乱,因此利用python进行统一规范重命名操作实现方法是利用python的os模块对文件夹进行遍历(listdir),然后使用rename进行改名操作代码如下# -*- codi...原创 2018-07-02 11:00:32 · 12427 阅读 · 3 评论 -
Python之OpenCV读取视频抽帧保存
# -*- coding:utf8 -*-import cv2import osimport shutil#视频文件名字filename = '00156.mp4'#保存图片的路径savedpath = filename.split('.')[0] + '/'isExists = os.path.exists(savedpath)if not isExists: o...原创 2018-11-05 11:51:40 · 20313 阅读 · 11 评论 -
Python之修改图片像素值
在做语义分割项目时,标注的图片不合标准,而且类型是RGBA型,且是A的部分表示的类别,因此需要将该图片转化为RGB图片# -*- coding:utf8 -*-import osfrom PIL import Imageim = Image.open('123.png')#打开图片pix = im.load()#导入像素width = im.size[0]#获取宽度height...原创 2018-10-31 16:39:52 · 25001 阅读 · 8 评论 -
Python之多张图片拼接
参考:https://www.jianshu.com/p/9a4739420c9e在做图像处理时,线阵相机采集保存的图片高度不够,需要将多张图片拼接在一起,原图片大小是2048×1024,需要将三张纵向拼接,形成大小为2048×3072的图片。话不多说,直接上代码#!usr/bin/python# -*- coding: utf-8 -*-import osfrom PIL im...原创 2018-10-25 17:43:12 · 3873 阅读 · 0 评论 -
Python图像处理库PIL中图像格式转换(一)
参考:https://blog.csdn.net/icamera0/article/details/50843172在数字图像处理中,针对不同的图像格式有其特定的处理算法。所以,在做图像处理之前,我们需要考虑清楚自己要基于哪种格式的图像进行算法设计及其实现。本文基于这个需求,使用python中的图像处理库PIL来实现不同图像格式的转换。对于彩色图像,不管其图像格式是PNG,还是BMP,或者...转载 2018-10-18 19:37:13 · 2807 阅读 · 0 评论 -
Python之PIL图片操作
参考:https://www.cnblogs.com/meitian/p/3699223.html之前一直是用opencv对图片进行读取、显示等操作,后来发现Python自带的库PIL也可以完成相同的操作,至于两者的区别,后边再研究,本文总结PIL常用的方法函数。在使用之前,要先导入库from PIL import Image1 打开图片img=Image.open("kobe....转载 2018-10-19 11:40:11 · 2624 阅读 · 0 评论 -
Python图像处理库PIL中图像格式转换(二)
参考:https://blog.csdn.net/icamera0/article/details/50843196?utm_source=blogxgwz0接上一篇《Python图像处理库PIL中图像格式转换(一)》二、其他不同模式转换为“RGB”模式模式“RGB”为24位彩色图像,它的每个像素用24个bit表示,分别表示红色、绿色和蓝色三个通道。在PIL中,对于彩色图像,ope...转载 2018-10-18 19:42:44 · 3828 阅读 · 0 评论 -
Ubuntu下使用OpenCV显示中文
由于 OpenCV 默认不显示中文,所以我们需要通过需要通过一些库来设置 OpenCV 支持中文显示转载 2021-05-14 15:21:26 · 581 阅读 · 0 评论 -
Python之OpenCV直方图统计及均衡化
0 背景在做图像处理时,经常需要对图像的像素分布情况进行统计,用来分析整张图片的像素分布,从而为进一步的处理提供数据支持,如二值化等操作。因此,本文对直方图相关的操作进行一个介绍。在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像、视频帧)和样本的某种属性(亮度,像素值,梯度,方向,色彩等等任何特征)图像直方图是用一表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。可以借助观察该直方图了解需要如何调整亮度分布的直方图。这种直方图中原创 2021-04-22 11:38:35 · 9312 阅读 · 0 评论 -
Python之OpenCV相机标定方法
opencv相机标定方法转载 2021-03-28 19:57:13 · 12333 阅读 · 15 评论 -
OpenCV函数大全
参考:https://zhidao.baidu.com/question/1433398183992821299.html在网上查OpenCV的某个函数定义时,看到有人总结了OpenCV所有的函数的含义,感叹之余,总结记录下来1、cvLoadImage:将图像文件加载至内存;2、cvNamedWindow:在屏幕上创建一个窗口;3、cvShowImage:在一个已创建好的窗口中显示图...原创 2018-01-12 16:27:07 · 14606 阅读 · 2 评论 -
Linux(x86)下OpenCV环境配置
在服务器端完成opencv环境的配置功能原创 2018-05-21 16:20:13 · 16290 阅读 · 2 评论 -
Ubuntu下OpenCV视频转图片的方法
参考:https://www.cnblogs.com/miaojinmin799/p/6845462.html在做深度学习相关项目时,需要对图片进行标注,但原数据是.h264格式的视频,需要读入视频并按帧提取保存图片,方法如下#include<opencv2/highgui/highgui.hpp>#include<iostream>#include <...原创 2018-05-21 17:12:17 · 1275 阅读 · 0 评论 -
OpenCV之图像变换(仿射变换与透视变换)
仿射变换(affine transform)与透视变换(perspective transform)在图像还原、图像局部变化处理方面有重要意义。通常,在2D平面中,仿射变换的应用较多,而在3D平面中,透视变换又有了自己的一席之地。两种变换原理相似,结果也类似,可针对不同的场合使用适当的变换。仿射变换和透视变换的数学原理不需深究,其计算方法为坐标向量和变换矩阵的乘积,换言之就是矩阵运算。在应用层...转载 2018-07-23 16:19:20 · 2111 阅读 · 0 评论 -
OpenCV之findContours获取轮廓(Python版)
参考:https://blog.csdn.net/loovelj/article/details/78739790OpenCV自带寻找轮廓的函数,流程是:获取灰度图→图片二值化→寻找轮廓直接上代码(Python版)import cv2img = cv2.imread('12.jpeg')gray = cv2.cvtColor ( img , cv2.COLOR_BGR2GRAY...原创 2018-07-31 19:20:55 · 22505 阅读 · 3 评论 -
OpenCV之七段数码管识别(含代码)
1 背景利用opencv识别数码管,采用传统的穿线法,前提是利用深度学习目标检测的方法,在机柜中将数码管区域切割出来,然后再对切割出来的区域进行识别,判断数字是多少。切割出来的形状如图所示:数码管各段表示为2 识别思路先对数码管进行灰度化和二值化,将数字变为255,背景变为0,然后利用穿线法,对abcdefg7个区域依次穿线,判断是否有255的值,有则表示该区域高亮,最后结...原创 2018-12-19 15:46:10 · 14224 阅读 · 21 评论 -
Python之OpenCV截取视频段
一个很简单的小栗子,在原视频中截取某一段的视频并保存,有了OpenCV工具之后,就不需要用到什么视频软件了(还是程序员比较爽哈哈哈哈哈哈)直接上代码,应该都能看懂,有问题可以留言import cv2print(cv2.__version__)videoCapture = cv2.VideoCapture('IMG_2789.MOV')fps = 120 #保存视频的帧率size...原创 2018-11-26 09:10:28 · 16849 阅读 · 21 评论 -
OpenCV之阈值化操作总结
参考:https://blog.csdn.net/sinat_21258931/article/details/61418681在做图像处理时,阈值化(二值化)是一个非常常见的操作,其中最关键的是阈值的选择,会直接影响到阈值化效果,本文对opencv常见的阈值化操作进行总结。1 固定阈值如果说图像质量较好,目标和背景容易区分,可以选择固定阈值来进行二值化,用到的函数是threshold...原创 2019-03-27 21:18:26 · 2801 阅读 · 0 评论 -
OpenCV之使用滑动条动态调整阈值
在做图像处理时,二值化是一个常规操作,阈值的选取很关键,为了调试方便,可以使用滑动条来动态调整阈值,观察二值化效果,用到的函数为cv2.createTrackbar和cv2.getTrackbarPos,1 cv2.createTrackbarint createTrackbar(const string& trackbarname,const string&winna...原创 2019-04-01 21:50:44 · 5898 阅读 · 3 评论