
图像处理
szfhy
这个作者很懒,什么都没留下…
展开
-
Opencv实现纵横比保持的图像缩放
之前实现过C实现纵横比保持的RGB图像缩放,其实计算效率是不高的。opencv的好多实现都是自带mmx, sse加速的。所以就来研究一下如何用opencv来实现纵横比保持的图像缩放。查看了一下opencv resize函数的详细定义:函数原型:参数说明:,输入图像,Mat类型即可;,输出图像,当其非零时,有着dsize(第三个参数)的尺寸或者有src.size()计算出来;,输出图像的大小。如果它等于0,由下式计算: ,沿水平轴的缩放系数,默认值为0,且等于0时,由下式计算:原创 2022-06-04 21:38:19 · 1082 阅读 · 0 评论 -
C实现纵横比保持的RGB图像缩放
双线性插值,实现图像scale down, 记个笔记#include "stdafx.h"#include <iostream>#include "stdio.h"using namespace std;int img_down_scale(const unsigned char* src_img, unsigned char* dst_img, int src_width, int src_height, int dst_width, int dst_height)原创 2022-03-20 17:52:20 · 766 阅读 · 2 评论 -
cuda 图像处理之sobel边缘检测
贴上来源代码吧,是在linux下调试通过的,包含源码和CMakeLists.txt环境配置配置好cuda pkg_config配置好opencv pkg_config之后的CMakeLists.txt会使用源码#include "cuda_runtime.h"#include <cuda.h>#include <device_functions.h>#include <opencv2/opencv.hpp>#include <iostr原创 2022-02-19 14:48:20 · 2360 阅读 · 0 评论 -
目标特征检测之BRIEF描述符
BRIEF:Binary Robust Independent Elementary Rreatures占位原创 2016-03-09 21:22:33 · 6778 阅读 · 0 评论 -
目标特征检测之SIFT特征
#!/usr/bin/env pythonimport cv2img = cv2.imread('chess.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)sift = cv2.SIFT()print sift.shapekp=sift.detect(gray, None)img = cv2.drawKeypoints(gr原创 2016-04-09 18:30:57 · 8117 阅读 · 0 评论 -
目标特征检测之FAST特征
Fast: Feature from Accelerated Segment Test适合在计算能力有限的设备上使用,其速度比SIFT 和SURF快,但是精度有限。#!/usr/bin/env pythonimport cv2img = cv2.imread('chess.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)原创 2016-04-09 20:38:06 · 951 阅读 · 3 评论 -
目标特征检测之SURF特征
SURF: speeded-up robust features是SIFT 的加速版#!/usr/bin/env pythonimport cv2img = cv2.imread('chess.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)surf = cv2.SURF(400)print surf.shapekp,原创 2016-04-09 20:20:19 · 6994 阅读 · 0 评论 -
目标检测之Harris角点特征
占位原创 2016-03-09 21:18:08 · 1263 阅读 · 0 评论 -
直方图反向投影
占位原创 2016-04-09 16:52:45 · 380 阅读 · 0 评论 -
YUV422转YUV420P
记录下,就当自己的工具了, 本来想使用ffmpeg转呢,结果命令行参数太复杂,没搞定,索性直接写吧#include #include /*#include #include */int yuv422_to_yuv420p(unsigned char *pYUV422, unsigned char *pYUV420, int width, int height){原创 2016-02-29 15:53:51 · 6751 阅读 · 0 评论 -
目标特征检测之ORB
ORB: Oriented Fast and Rotated BRIEF它是OpenCV_Labs 在2011年提出的,首先它是免费的,而SIFT 和 SURF 是受专利保护,并且要收费的,ORB 是他们的一个替代品,在计算能力比有限的设备上适合这个东西。它的效果: sift > orb > surf, 计算速度 orb > surf > sift#!/usr/bi原创 2016-04-10 11:31:50 · 7479 阅读 · 0 评论 -
python+opencv目标匹配技术
先上两个code吧#!/usr/bin/env pythonimport cv2import numpy as npimg1 = cv2.imread('box.png', 0)img2 = cv2.imread('box_in_scene.png', 0)orb = cv2.ORB_create()kp1, des1 = orb.detectAndCompute(img1原创 2016-04-10 22:34:20 · 8503 阅读 · 0 评论 -
图像处理质量评价标准之PSNR
PSNR(Peak Signal to Noise Ratio)峰值信噪比,是一种全参考的图像质量评价指标。计算公式如下:其中,MSE表示当前图像X和参考图像Y的均方误差(MeanSquare Error),H、W分别为图像的高度和宽度;n为每像素的比特数,一般取8,即像素灰阶数为256. PSNR的单位是dB,数值越大表示失真越小。PSNR是最普遍和使用最为广泛的一种图像客观原创 2015-11-03 14:28:32 · 22651 阅读 · 0 评论 -
图像质量评价--SSIM
SSIM 全称为structural similarity (SSIM) indexmeasurement system。是一种衡量两幅图像相似度的指标,其取值范围为[0,1],值越大越好;构相似性理论认为,图像是高度结构化的,即像素间有很强的相关性,特别是空域中最接近的像素,这种相关性蕴含着视觉场景中物体结构的重要信息;作为结构相似性理论的实现,结构相似度指数从图像组成的角度将结构信原创 2015-11-06 10:45:47 · 16745 阅读 · 0 评论 -
图像质量评价-EPSNR
EPSNR, Edge PSNR。主要还是基于人眼对高频信息敏感的原理来改进的,在Edge区域计算PSNR,使视频编码质量性能评价更能和主观评价一致。Edge检查的方法很多,就不介绍了,如sobel数学公式如下:其中,MSEedge表示边缘像素的均方误差,K表示Edge的个数,Ref表示参考图像在点(I,j)的像素值,Cur表示待测图像在点(I,j)处的像素值,原创 2016-10-28 11:29:17 · 8605 阅读 · 0 评论 -
人眼的关注度不同,在视频压缩和图像处理领域,有完全相反的准则
人眼的关注度不同,在视频压缩和图像处理领域,有完全相反的准则。在视频压缩领域,人眼关注在平坦区域是不是引入了block,而对复杂纹理区域是不是压缩的更模糊倒不是很关注,因此在图像内容平坦区域分配的QP小一点,编的更清楚一些,而在复杂区域,QP分配的大一些,编得更模糊一些。在图像处理领域,人眼反而对高频信息比较敏感,因此图像处理反而会使Edge变的更清楚,更Sharp,纹原创 2016-10-31 14:43:40 · 6766 阅读 · 0 评论 -
numpy scipy opencv 操作图像数据
python numpy是一个核心的数据结构,numpy的结构如何转换为opencv的图像数据结构呢,numpy如何快速的操作图像数据呢?如下sample code所示:import cv2import numpy as npimg = np.zeros((300,300,3))img[:,10,0] = 255img[:,10,2] = 255img[10,:,1] = 255i...原创 2018-05-21 21:08:10 · 3560 阅读 · 0 评论 -
SRCNN-study
Super-Resolution:原创 2018-05-31 14:58:57 · 3376 阅读 · 1 评论 -
python实现图像外边界跟踪
share一些python实现的code#!/usr/bin/env python#coding=utf-8import cv2img = cv2.imread("trace_border2.bmp")[img_h, img_w, img_channel] = img.shapetrace = []start_x = 0start_y = 0gray = img[:,...原创 2018-09-01 16:16:08 · 5512 阅读 · 2 评论 -
ubuntu 源码编译安装opencv
下载source codeSudo apt-get install cmakeSudo apt-get install libgtk2.0-devSudo apt-get install pkg-config 进入source code目录,/home/aaa/Project/opencv-3.4.0/Mkdir buildMkdir install_opencv 将o...原创 2018-11-23 15:38:40 · 606 阅读 · 0 评论 -
目标检测之HOG特征
模式识别的一般步骤是:(1)特征提取(2)根据特征和正负样本训练分类器(3)利用分类器识别HOG就是一个描述图像信息的特征。Histogram of Oriented Gradient, 既方向梯度直方图,在特定梯度方向上的梯度值总和。概念性的东西不说了,下面通过代码详细讲解。HOG特征对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次原创 2016-03-09 21:16:35 · 6532 阅读 · 0 评论 -
目标检测之Haar特征
最初在Opencv的人脸检测中接触到这个特征。占位,原创 2016-03-09 21:24:50 · 556 阅读 · 0 评论 -
图像二值化
一:大津阈值及其变种该方法的核心就是计算背景和前景的最大类间方差,把类间方差最大的像素值作为全局二值化的阈值,计算费时。全局阈值,要根据适用场景选择性的应用。变种:在[0 T] 内继续寻找ostu值, 在[T 255]内继续寻找ostu值。 [plain] view plaincopyclear; close all; clc; G =原创 2015-10-30 15:23:56 · 6630 阅读 · 0 评论 -
图像视频防抖
视频防抖该项技术关键字挺多的,但作用都是去除视频拍摄过程中轻微抖动造成的图像模糊。Anti-Shake,Shake-proof, imagestabilization都是这个意思,image stabilization是由canon最先开始这么称呼的,Anti-shake更通用一点。该项技术分为两大类,镜头防抖和电子防抖。做镜头技术牛的公司喜欢搞这个,像canon.更经济通用的方法原创 2015-11-18 15:52:07 · 19539 阅读 · 2 评论 -
RGB三分量与饱和度
RGB三个颜色通道同时加上同一个值,图像的亮度也会提高,提高的幅度就是rgb颜色空间加上的值,但是当前点的颜色不会改变,饱和度降低RGB三个颜色通道同时减去同一个值,图像的亮度会降低,降低的幅度就是rgb颜色空间减去的值, 但是当前点的颜色不会改变,饱和度增加原创 2015-10-29 20:34:08 · 13493 阅读 · 0 评论 -
双边滤波器 Bilater filter
双边滤波器主要是针对高斯模糊滤波来说的,处理后的效果比单纯的用高斯模糊要好。 在图像的低对比度区域,也就是图像平滑区域,像素间的相关性较强,在图像的高对比度区域,edge区域,像素间的相关性比较弱,双边滤波器同时考虑邻域像素与中心像素间的几何距离度量和像素间灰度相似度度量,这两个度量均用高斯核函数。对领域中距离近并且灰度相似的像素赋予较大的权值,否则,则赋予较小的权值。正是这种双重异性加原创 2015-10-29 17:46:21 · 8129 阅读 · 0 评论 -
趣谈直方图均衡化和规定化
直方图均衡化主要是为了增强图像的对比度,就像现在的人去做美容。 单眼皮割成双眼皮,削削脸骨,垫垫鼻梁,对比度就增强了。 取掉一些痣或者雀斑,这些灰度级被压缩了,图像的细节也损失了一点。这就是图像均衡化所干的主要工作。 直方图规定化同样是为了增强图像的整体视觉质量,与直方图均衡化又不太一样,但是直方图均衡化是进行规定化一个必须的步骤,也可以用人去做美容来比喻,只不过原创 2015-10-29 17:44:34 · 2783 阅读 · 1 评论 -
python+opencv实操-图像基本操作
直接上code吧,暂记于此。from PIL import Image #导入图像库中的Imagefrom pylab import *pil_im_rgb = Image.open('e:\PC.jpg')pil_im_rgb.show()#(1)转化为灰度图像pil_im_gray = Image.open('e原创 2015-11-12 17:17:43 · 6633 阅读 · 0 评论 -
Bayer图像的由来及Opencv preview
首先来介绍一下关于相机的基础知识:1.CCD/CMOS相机的感光元件对波长(即颜色)不敏感,如果拿一个裸体的CCD/CMOS传感器去拍摄图像,只能得到灰度图;2.因为上述这条,人们必须找到能够将波长区分开的方法,其中一种是使用三个滤光片(通常是RGB三色),在这三个滤光片之后放置三个CCD,这就是3CCD相机;显然上一种方法的成本太高了,聪明的人类又想到了另一个方法:那就是原创 2015-11-12 21:31:31 · 9721 阅读 · 0 评论 -
图像彩色空间
RGB颜色空间在计算机技术中使用最广泛的颜色空间是RGB颜色空间,它是一种与人的视觉系统结构密切相关的模型。根据人眼睛的结构,所有的颜色都可以看成三个基本颜色-红色(red)、绿色(green)和蓝色(blue)的不同组合,大部分显示器都采用这种颜色模型。对一幅三通道彩色数字图像C,对每个图像像素(x,y),需要指出三个矢量分量R、G、B;RGB对应到显示器的三个刺激值,组成三维正原创 2015-11-12 21:56:31 · 22417 阅读 · 0 评论 -
可见光与色温
可见光是电磁波谱中人眼可以感知的部分,可见光谱没有精确的范围;一般人的眼睛可以感知的电磁波的波长在400-700nm之间,正常人眼对波长约为555nm的电磁波最为敏感,这种电磁波处于光学频谱的绿光区域。这也是为什么RGB转换为亮度Y的过程中,G分量的权值最大,Bayer pattern中G的采样频率是RB采样频率的两倍的原因。波长不同的电磁波,引起人眼的颜色感觉不同。(380~420)—紫原创 2015-10-30 14:23:53 · 10198 阅读 · 0 评论 -
利用Adaboost和Haar特征进行人脸检测
利用哈尔和LBP特征,训练分类器,然后进行人脸检测原创 2015-11-30 18:51:20 · 8031 阅读 · 0 评论 -
人脸检测特征-haar特征
哈尔特征原创 2015-11-30 18:48:25 · 7429 阅读 · 0 评论 -
目标检测之LBP特征
LBP:Local Binary Pattern占位原创 2016-03-09 21:23:42 · 664 阅读 · 0 评论 -
Guided Filter 引导滤波
双边滤波双边滤波很有名,使用广泛,简单的说就是一种同时考虑了像素空间差异与强度差异的滤波器,因此具有保持图像边缘的特性。先看看我们熟悉的高斯滤波器其中W是权重,i和j是像素索引,K是归一化常量。公式中可以看出,权重只和像素之间的空间距离有关系,无论图像的内容是什么,都有相同的滤波效果。再来看看双边滤波器,它只是在原有高斯函数的基础上加了一项,如下其中 I 是像素转载 2016-03-08 21:16:36 · 9525 阅读 · 0 评论 -
图像去雾-dehaze-defog
图像去雾算法最近应该都是从何凯明博士的CVPR论文衍生出来,论文中基于一种假设:没有雾的图像的dark_channel值都接近于0,而有雾的图像则不等于0.将有雾图像的dark_channel值逆向归零,便可恢复出没有雾的图像,达到去雾的效果。这里简单记录一下算法的过程:src为有雾的图像。dst为取出雾的图像。Darkval是图像局部区域的最小值,w是一个调整系数原创 2016-03-06 17:14:35 · 14378 阅读 · 1 评论 -
人工智能-计算机视觉-图像处理-模式识别的关系
图像处理是将输入图像转换为输出图像的过程,人是图像处理的效果的最终解释者;在计算机视觉中,计算机是图像的解释者;图像处理仅仅是计算机视觉系统中的一个模块;计算机图形学的主要工作是从三维描述到二维图像显示的过程;计算机视觉则是从二维图像数据到三维描述的过程,计算机视觉是计算机图形学的逆问题。模式识别主要解决分类的问题,是计算机视觉中的一个模块;总体来说他们有如下的关系:原创 2016-03-30 14:18:12 · 14467 阅读 · 0 评论 -
CCM原理
CCM 是color correction martix的简称。为什么会有这样一个东西?原创 2016-02-08 15:56:37 · 8184 阅读 · 0 评论 -
图像dither
dither是一种图像增强方法,主要利用了错误消散技术。import cv2import numpy as npimg = cv2.imread('Portal_Companion_Cube.jpg')cv2.imshow('src', img)print(type(img))r_channel = img[:,:,0]g_channel = img[:,:,1]b_ch...原创 2016-02-08 15:57:44 · 3508 阅读 · 0 评论 -
人脸检测特征-LBP特征
哈尔特的基础上产生的LBP特征原创 2015-11-30 18:49:31 · 8975 阅读 · 0 评论