自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lemonHe的博客

专注于图像处理与FPGA设计

  • 博客(42)
  • 资源 (4)
  • 收藏
  • 关注

原创 opencv缩放算法

1.opencv插值介绍opencv提供resize函数用来做图像缩放,该函数有6个参数:(1)输入图像,Mat型(2)输出图像,Mat型(3)输出图像大小,可用cv::Size(out_img_width, out_img_height)来表示,如果该值为0,则输出大小由第4,5两个参数fx、fy决定(4)水平缩放因子,如果该值为0,则会按照(double)dsize.width/src.cols来计算(5)重直缩放因子,如果该值为0,则会按照(double)dsize.height/src.

2020-11-22 23:48:07 1570

原创 PNG编解码算法详解

1.PNG介绍PNG是便携式网络图型( Portable Network Graphics)的缩写,由于PNG带有透明通道,无损压缩,可提升设计元素的呈现效果,因此设计上对PNG情有独钟,广泛的运用在设计、游戏、网页、app开发里,实际使用上由于存在很多误区,导致被滥用,这里对之前学习png的心得做个整理。首先,PNG和诞生跟GIF格式有较大关系,这中间有很多趣事,可自行查阅。PNG的压缩过程是完全无损的,压缩过的文件可以准确的还原出原图,可封装多种pixfmt格式的数据,并且是一种可扩展的封装格式,

2020-08-24 23:16:45 12138 1

原创 shell多进程执行

shell在linux中,是用户和系统沟通的桥梁,采用C编写,既是一种命令语言,也是一种解释型脚本语言,我们常写的ls,grep就是基本的shell命令。shell脚本是将要执行的命令按一定顺序写成的一个文本文件,最近遇到一个需求,要将一定数量的命令快速执行,而每次执行都需要一定的时间,最终使用 &提交后台执行来完成,如:cat test.txt | grep abc > abc.txt & #将test.txt所有包含abc的行提取到abc.txt中多个处理都这样来做,即

2020-07-26 12:45:05 3571

原创 valgrind诊断C/C++内存泄漏

1.valgrind介绍C/C++中内存分配与管理是程序员比较头疼的事情,大型线上业务系统,系统内存泄漏到一定程序,可能会因为分配不到内存而导致宕机,后果很严重。valgrind工具大件提供了许多调试和性能分析工具,包含包含七个生产质量工具:一个内存错误检测器,两个线程错误检测器,一个缓存和分支预测探查器,一个生成调用图的缓存和分支预测探查器以及两个不同的堆探查器。还包括一个实验性的SimPoint基本块矢量生成器。这些工具中最流行的称为Memcheck。它可以检测C和C++程序中常见的许多与内存相关

2020-06-21 14:09:29 560

原创 FFMPEG视频解码

1.背景介绍学习FFMPEG有段时间了,FFMPEG对通用的视频编解码做了统一接口处理的抽象,比如在解码处理时,无须关心其具体的编解码格式,仅需关心其pixfmt即可。FFMPEG使用时需要关心下面这些核心的结构体。AVFormatContext // 封视频格装上下文,是处理编封装功能的结构体AVCodecContext // 解码器上下文,是编解码功能的结构体,存储了gop/definition/pixfmt/profile/bit_rate等参数AVCodec

2020-06-10 22:54:56 664

原创 批量提取视频帧率及分辨率

最近遇到一个需求,需要做一些frame rate conversion相关的工作,首先分析需求,有哪些FRC类型?这里需要批量提取一批文件的帧率及分辨率。1.帧率查看工具遇到视频,很难不想到ffmpeg,ffmpeg提供了3个实用的可执行文件。ffmpeg:视频转码等处理ffplay:播放相关ffprobe:媒体信息查看这里选用ffprobe来查看媒体信息,首先,使用ffprobe来提取视频帧率及分辨率信息。查看媒体信息ffprobe 'https://vod.300hu.com/4c1

2020-05-17 00:15:42 3161

原创 linux shell用法-批量重命名-split

经常遇到需对当前目录下所有文件进行重命名的需求,比如尝试学习,对样本集数据进行编号,又或者需对当前目录下所有文件进行排序命名,经常用到,就在这里记录一下吧。同时整理一些常见的shell用法,后期保持更新1.文件夹下所有文件重命名将目录下所有文件命名为1.jpg、2.jpg、…#!/bin/bashpath=`pwd`files=`ls $path/test-blur`count=0...

2020-02-15 19:50:41 562

原创 LINUX GDB调试

最近在LINUX下调试C/C++,以前在W下都是基于VS自带的调试工具来debug,换到LINUX后,怎么调试呢?刚开始嫌麻烦就直接使用print方法,随着程序复杂度增加,print效率低下并且已经解码不了问题,对于nginx服务来说,core文件又该怎么调试呢?答案就是GDB,引用一段官方描述,GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调...

2019-12-07 21:19:31 324

原创 jpeg图像质量参数及icc信息提取

图像编码算法都有相应的质量参数,如hevc编码中的qp值(值越大,压缩率越高),jpeg中的quality(对应到DCT变换后的量化程度)。最近看了看如何根据jpeg图像中的量化文件统计其quality参数,记录下过程。我的环境:linux centos、libjpeg turbo库Talk is cheap, Show me your code…#include <stdio.h&g...

2019-09-15 23:38:44 6818

原创 python绘制函数曲线

之前一直使用matlab来画曲线,确实非常方便,但matlab作为商业软件,价格很贵,动辄好几个GB,安装很慢,并且还涉及license问题。相对来说,python完全免费,只需要安装一个解释器,并且有很多科学计算库可以调用,所以后来就一直使用python来画曲线,记录下最近画的几条曲线。环境:mac、pycharm、anaconda1.sigmoid曲线sigmoid曲线公式如下,可将值...

2019-09-15 23:22:19 50506 2

原创 人脸检测库libfacedetection使用方法

libfacedetection介绍libfacedetection是一个开源的人脸检测库,使用C编写,将模型文件转化为C的静态变量,不依赖外部第三方库,使用时可以直接把源代码拷到自己的工程,也可以使用动态库(so)/静态库(a)的方式来调用,使用还是很方便的。这里介绍基于该库的动态链接库编译及调用的demo.2.下载及编译git clone https://github.com/Shiq...

2019-09-08 16:43:37 12289 8

原创 opencv图像合成

图像合成本质上是alpha blending,也称为alpha融合,数学表达如下y = alpha * x1 + (1 - alpha) * x2opencv中提供了融合函数,可进行单通道或多通道整合(本质上是各个通道分别整合),如下为官方文档描述。对于c++版本,有7个参数,分别是:src1,输入图像1alpha,src1的权重src2,输入图像2beta,src2的权重gam...

2019-08-03 18:34:58 2624

原创 深度学习图像预处理-python缩放裁剪

使用深度学习进行图像类任务时,通常网络的输入大小是固定的,最近在进行涉及到文字检测的工作中,由于预处理resize缩小了原图,导致字体变模糊,从而检测失败,后来想到使用overlap来对图像进行缩放裁剪,即先将原图缩放到一定尺寸,再裁剪得到网络的输入。好了,来说正题,使用yolov3,网络的输入是352x352x3,而输入图像大小为几百上千不等,因此需对原图进行resize,起初直接进行缩放 +...

2019-07-28 23:58:58 7620 3

原创 cronolog日志切割神器

许多日志文件是不分割的,这样既不易于管理,也不易于分析统计。cronolog作为日志过滤程序,可用来切割linux日志文件,通过对输入的日志按文件名模板和当前日期重新编排,来按格式生成所需日志。cronolog 旨在和一个Web服务器一起使用,如Apache、Nginx,分割访问日志为yy-mm-dd-hh格式的日志。记录一下使用cronolog来切割nginx日志的过程。1.安装crono...

2019-06-01 18:46:33 3436

原创 pytorch基础知识

参考pytorch官方教程,撸pytorch基础知识,记录学习的过程主要参考DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ,再加上一些numpy的基础知识,这算是一篇对pytorch和numpy的基础知识的总结吧,共分5个方面,这里主要记录1,2部分的学习,英语较好的同学可以直接看参考[1]。pytorch是基于python的一个科学计算包,主要面...

2019-05-19 22:45:07 648

原创 pytorch进行fashion mnist数据集分类

标题1.数据集介绍(1)MNISTMNIST是深度学习最基本的数据集之一,由CNN鼻祖yann lecun建立的一个手写字符数据集,包含60000张训练图像和10000张测试图像,包含数字0-9共10个类别.(2)FASHION MNIST由于MNIST数据集太简单,简单的网络就可以达到99.7%的top one准确率,也就是说在这个数据集上表现较好的网络,在别的任务上表现不一定好。因此...

2019-05-19 22:16:53 20026 3

原创 jpeg编解码库-libjpeg turbo

libjpeg turbo

2019-04-14 01:15:14 5556

原创 JPEG解码原理

1.背景介绍问题定义:为什么要做视频图像的编解码?我们先来看看,视频资源占用计算:4KP30视频1min,3840218033060* = 42.7GB(每帧大小24.3MB),1分钟4K的视频大概需要42.7GB存储,因此视频图像的编解码十分必要。我们再看看图像的存储格式和常用分辨率:模拟信号PAL、NTSC制式已经远去,我们来看数字信号(YUV、RGB888),由于人眼对亮度信号比色度...

2019-04-14 01:13:39 3052

原创 PyTorch入门及例程学习

本篇文章大部分内容翻译自learning pytorch with examples。1.PyTorch介绍PyTorch是使用GPU和CPU优化的深度学习张量库,该项目2017年1月由facebook开源,短短两年时间,github上星数已经有25000+,增长速度非常快。PyTorch的底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了...

2019-03-20 01:41:28 940

原创 linux磁盘挂载与批量挂载

记录一下磁盘挂载的经历,背景是这样的,业务运行时有大量的日志文件产生,因此给服务器挂载一个数据盘。先普及几个查看linux磁盘空间的命令:df -h 查看磁盘空间du -m 查看当前目录下各个文件占用存储空间大小,单位为MBfdisk -l 查看当前磁盘分区信息1.使用fdisk -l查看当前磁盘分区信息,还有一个200+GB的数据盘可以使用sudo fdisk -l2.发现有路...

2019-03-10 21:26:57 1928

原创 利用python分析日志文件

越来越喜欢用python来处理日常问题了,用起来简直太方便。最近需要分析系统的日志文件,背景是这样的,FPGA和GPU跑相同深度学习的模型网络,输入相同的数据,对比其输出。日志量非常大,如果符合输出结果,日志文件中会有如下条目:"scores":0.801309,"classes"那么首先使用cat命令将文件中包含scores的条目全部按行保存:cat fpgadetection.log...

2019-03-09 16:31:13 9081

原创 使用visual studio code进行debug

在VSC的Debug上踩了些坑,写篇总结,希望可以帮助大家快速在VSC上进行Debug。Visual studio code是微软推出的免费的跨平台代码编辑器,可以开发C/C++,python,Java,界面非常清爽,支持代码关键字不同颜色高亮,如图1,编码代码支持补全,使用起来可以说是非常方便。但是代码调试没有Visual studio那么方便,需要自己安装GDB调试工具,下面进入正题。1...

2019-01-05 22:26:55 9958

原创 osscmd配置及使用

osscmd是基于python 2.x的命令行工具,方便bucket管理、文件管理,有时需要将服务器上的数据传到本地,可以先将数据osscmd到oss对象存储上,再使用oss-browser下载到本地。先在本机/服务器上安装python2.5/2.6/2.7Python –version查看是否已经安装好下载python 的osscmd工具wget https://do...

2019-01-04 22:48:07 3695

原创 图像锐化算法-sharpen

图像锐化,是使图像边缘更清晰的一种图像处理方法,细节增强(detail enhancement)我理解也包含了图像锐化,常用的做法是提取图像的高频分量,将其叠加到原图上。图像高频分量的提取有两种做法,一种是用高通滤波器,得到高频分量,另一种是通过低通滤波,用原图减低频得以高频。直接提取高频的方法有sobel算法、laplcian算子,sobel算子是图像的一阶导数,提取的是梯度信息,分水平和垂...

2018-09-11 23:11:38 45732 4

原创 CIFAR-10数据集及matlab版本读取

CIFAR-10和CIFAR-100都是带有标签的数据集(是8千万小图像数据集的子集),由Alex Krizhevsky, Vinod Nair, and Geoffrey Hinton等人创建。 CIFAR-10由60000张32x32的彩色图像组成,50000张训练图像和10000张测试图像,共分10个类,每个类6000幅图像,不同类的图像互斥。这些数据集分成5个训练batch和一个测试ba...

2018-08-30 22:35:38 10778 4

原创 图像插值算法及其实现

由于sensor、codec、display device都是基于pixel的,src和dst可能不匹配,或者用户希望看到感兴趣区域,因此,我们需要用到图像缩放(scaler/resize)技术。图像缩放算法往往基于插值实现,常见的图像插值算法包括最近邻插值(Nearest-neighbor)、双线性插值(Bilinear)、双立方插值(bicubic)、lanczos插值、方向插值(Edge-d...

2018-08-27 19:27:30 39883 3

原创 HDR技术介绍

高动态、宽色域、高分辨率、高帧率、高位宽电视能呈现更真实的画面,使得高亮处更亮,暗处更暗,亮暗极限对比度更高,同时,能提供丰富的亮暗区域细节,常见的HDR技术包括PQ和HLG技术。HDR system指能将相机捕捉的动态范围从源端传到终端显示,并且没有动态范围衰减,关键技术是transfer functions(OETF/EOTF)的设计和优化。 ...

2018-08-16 22:34:45 22378

原创 图像Demosaic算法及其matlab实现

由于成本和面积等因素的限定,CMOS/CCD在成像时,感光面阵列前通常会有CFA(color filter array),如下图所示,CFA过滤不同频段的光,因此,Sensor的输出的RAW数据信号包含了3个通道的信息, ```%% ------------------------------------% Author : lemonHe% Time : ...

2018-08-14 22:37:40 22011 4

原创 Non local means图像去噪算法及其实现

论文原文:A non-local algorithm for image denoising该文章2005由Buades等人发表在CVPR上,对于single-image denoise来说,当时基本上是state-of-the-art。去噪属于图像复原的范畴,通常使用滤波来实现,并且往往是低通(平滑噪声)滤波器。对于单帧图像去噪,使用空间邻域像素来处理,对于多帧图像去噪,则可以考虑时空域...

2018-07-18 22:53:33 11223 10

原创 2017年总结

2017,从校园走向工作岗位,从北方到南方,正式结束漫长的求学生涯。读书期间,研究方向是FPGA图像处理,更多的硬件设计相关的工作,数字电路、模拟电路设计,原理图,layout,verilog,Nios II,硬件调试…工作之后,工作方向是显示后处理算法开发,3DNR、DIT、scaler、HDR、dither、HBSC、CM、CSC…工作方向从FPGA图像处理转到了low-level

2018-02-03 11:26:09 331

原创 图像颜色空间转换-CSC

由于从事数字图像处理工作,常常要做颜色空间(如RGB、YUV、YCbCr、HSI)、色域(BT.601、BT.709、BT.2020)的转换。之前一直没有弄明白YUV和YCbCr的差异,也没有深究。来来回回浪费了许多时间,想想还是应该弄清楚,讲明白。CSC指color space convert,这里主要讲RGB与YCbCr颜色空间的转换,常用的色域空间有BT.601(SDTV,标清电视),B...

2017-11-14 23:48:19 11366 2

原创 VS2015配置open3.3.0

之前一直用的VS2010 + opencv2.4.9,有点落后了,电脑也比较差,这次索性咬咬牙,整了台联想拯救者,win10系统,安装了VS2015,下载了最新的open3.3。安装配置过程如下:下载安装Visual Studio Community 2015,社区版免费,并且与professional版本相比功能差不多。https://www.visualstudio.com/zh-h...

2017-10-25 23:24:51 1533

原创 图像白平衡原理及实现

%%白平衡与色温紧密相关,不同色温光源下图像会呈现不同程度的偏色%%由于人眼独特的适应性,在不同光照条件下观看物体时不会出现偏色,而就没这么先进了%%蓝色光色温高,红色光色温低 clc;clear all;close all;tic;imgSrc = imread('E:\picture\03-work\02-imgProc\00-ISP\wb_sardmen-incorr...

2017-10-16 23:10:09 21415 3

原创 Matlab取整函数介绍及数据定点化方法详解

在进行计算操作时,常常要涉及到取整操作。我所做的工作大部分跟图像自理相关,我们知道,pixel value都是整数,在涉及到小数的计算时(比如直方图操作),往往要使用取整方法。Matlab中取整函数有以下4个:fix, ceil, floor, round,取整函数可对单个数据或者矩阵作处理。FixRound toward zero,意思是向0的方向取整CeilRound to

2017-09-28 23:32:27 3093

原创 lvds在FPGA中的使用4 - 板级调试

趁着周末,写上一篇lvds调试文章,接着之前写的lvds连载系列,说说近期调试中遇到的一些问题。电路板加工焊接回来后,先检查焊接、测试电源,FPGA程序下载及固化,各种调试。好了,进入正是,说说lvds调试。如下图,采用软硬结合板设计,左侧为FPGA主板部分,右侧主要是一些接口,包括Camlink、VGA,中间采用柔性电路板相连。 首先,按照连载3的程序调试lvds接口,使用ban

2017-08-22 22:41:26 5829

原创 lvds在FPGA中的使用5 - ALTLVDS_TX核外部pll模式调试

我的开发环境:quartus13.1 lvds连载4博文中,使用的是lvds核调用PLL的方式,这样一组lvds发送端口需要一个PLL,比较浪费资源。其实在使用ALTLVDS核时,还可以使用External PLL(外部pll),使用外部pll,不仅可以节省一个PLL,还可以减少逻辑资源的使用。下面来说说调用ALTLVDS_TX核时,怎么使用外部PLL。与转载4相同,还是5个通道,每个通道对应7个...

2017-08-22 22:35:13 6368

原创 lvds在FPGA中的使用3- lvds_tx核与lvds_rx核的使用

我的开发环境:quartus13.1  altlvds_tx/ altlvds_rx核实际上是个并串/串并转换器,在使用altlvds_tx/ altlvds_rx核时,一定要先在quartus ii中新建工程,编译并分配管脚,看编译能否通过,如果通过了再投板,否则可能要更改电路设计了。我在电路中使用lvds接口发送数据,以前的设计中使用的是DS90CR287完成数据串化,对于base

2017-08-22 22:32:33 11297

原创 lvds在FPGA中的使用2 - lvds传输在c4器件上的实现

参考1:Cyclone IV Device Handbook参考2:http://wenku.baidu.com/link?url=5CxhPRr58LRBlj_cYCsm3pzS6DzUBcw1Pm_EgR8NEbpHVhGK5k4a1BcNBdNmDarxjx7KImN7wmBfZWubIfuKKJ0RO9G9dWcbUq73LKOgbsC  LVDS信号的电压摆幅只有350M

2017-08-22 22:31:16 8143

原创 lvds在FPGA中的使用1 - lvds介绍

目前电路中数字视频使用Camera Link接口传输,之前的方案是FPGA输出并行数据信号+同步控制信号,再由串化芯片DS90CR287进行并转串处理,处理完通过Camera Link接口输出,采集卡上使用DS90CR288进行并转串处理,这种方式占用FPGA管脚资源多。当传输24bit RGB信号时,需要使用24(信号)+4(同步控制)+1(时钟)=29个管脚,而使用lvds传输,使用altlv

2017-08-22 22:30:02 8661 1

原创 双边滤波器原理及其matlab实现

之前做过图像细节增强方面的工作,处理的是红外灰度14bit图像,图像信号由14bit AD量化后,再经FPGA处理得到,使用非锐化掩模的方法,先用双边滤波器(BF)对原图像进行滤波得到低频部分,原图和低频作差后得到高频分量,高频分量和低频分量分别增强后再进行合成。     双边滤波的特点是保边去噪,相较于高斯滤波,在平滑图像的同时,增加了对图像边缘的保护,其主要原因是由于该滤波器由两部分组

2017-08-21 23:34:07 3983 3

cadence中换pin

本文描述了如何使用cadence进行swap pin操作

2015-08-12

使用quartus生成jic文件详解

本文档描述了如何使用quartus生成jic文件

2015-08-12

笔记本键盘失灵怎么办

主要论述了笔记本键盘失灵如何解决的问题,一般情况下可轻松解决!

2014-09-26

浅谈matlab学习

主要教新手学习matlab,如何快速上手matlab,对matlab的学习作了个初步概括

2014-09-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除