2017-12-22 11:11:47 zqhwando 阅读数 8274
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174435 人正在学习 去看看 陈槐

因为自己是一枚图像处理领域的研究生菜鸟,即将从事的方向是图像处理下的图像融合方向,故,把我自己学习中遇到的不太明白的知识列下来,留作纪念,加深印象与理解。
从广义上说,图像是自然界景物的客观反映。以照片形式或视频记录介质保存的图像是连续的,计算机无法接收和
处理这种空间分布和亮度取值均连续分布的图像。图像数字化就是将连续图像离散化,其工作包括两个方面:
取样和量化。
那么,究竟什么是采样,什么又是量化呢?
所谓采样,就是把一幅连续图像在空间上分割成M×N个网格,每个网格用一亮度值来表示。一个网格称为一个像素。M×N的取值满足采样定理。
采样示意图
而量化就是把采样点上对应的亮度连续变化区间转换为单个特定数码的过程。量化后,图像就被表示成一个整数矩阵。每个像素具有两个属性:位置和灰度。位置由行、列表示。灰度表示该像素位置上亮暗程度的整数。此数字矩阵M×N就作为计算机处理的对象了。灰度级一般为0-255(8bit量化)。
量化示意图(a)为量化过程(b)为量化为8bit
在现实生活中,采集到的图像都需要经过离散化变成数字图像后才能被计算机识别和处理。
二维图像的成像过程
采样又可分为均匀采样和非均匀采样。
图像均匀采样量化——像素灰度值在黑白范围较均匀分布的图像。
图像非均匀采样量化——对图像中像素灰度值频繁出现的灰度值范围,量化间隔取小一些,而对那些像素灰度值极少出现的范围,则量化间隔取大一些。
不同分辨率下图像的显示情况
通过自己查资料整理,终于对图像的采样与量化过程有了最基本的了解,不像刚开始写之前,懵懵懂懂的,就感觉听了好多遍这两个词,但就是不知道他两是干啥用的。谨以此文,纪念之。

2019-01-10 00:24:47 qq_42887760 阅读数 867
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174435 人正在学习 去看看 陈槐

图像金字塔概念

  1. 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔
  2. 一个图像金字塔式一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。
    在这里插入图片描述
  • 高斯金子塔 – 用来对图像进行降采样
  • 拉普拉斯金字塔 – 用来重建一张图片根据它的上层降采样图片(分辨率较低)

图像金字塔概念 – 高斯金字塔

  • 高斯金子塔是从底向上,逐层降采样得到。
  • 降采样之后图像大小是原图像MxN的M/2 x N/2 ,就是对原图像删除偶数行与列,即得到降采样之后上一层的图片。
  • 高斯金子塔的生成过程分为两步:
    • 1.对当前层进行高斯模糊
    • 2.删除当前层的偶数行与列
      即可得到上一层的图像,这样上一层跟下一层相比,都只有它的1/4大小。
      在这里插入图片描述

高斯不同(Difference of Gaussian-DOG)

  • 定义:就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。称为高斯不同(DOG)
  • 高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。

采样相关API

  • 上采样(cv::pyrUp) – zoom in 放大
    pyrUp(Mat src, Mat dst, Size(src.cols2, src.rows2))
    生成的图像是原图在宽与高各放大两倍

  • 降采样 (cv::pyrDown) – zoom out 缩小
    pyrDown(Mat src, Mat dst, Size(src.cols/2, src.rows/2))
    生成的图像是原图在宽与高各缩小1/2

代码案例:

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace cv;

int main(){
	//1. 加载图像和显示原图
	Mat src=imread("E:/Experiment/OpenCV/Pictures/dog2.jpg");
	if(src.empty()){
		printf("could not load image...");
		return -1;
	}
	namedWindow("input_windows",CV_WINDOW_AUTOSIZE);
	imshow("input_windows",src);//显示图片

	//2. 创建两个Mat对象来存储操作的结果,并执行采样操作
	Mat dst1,dst2;
	//2.1. 上采样
	pyrUp(src, dst1, Size(src.cols * 2, src.rows * 2));//上采样,生成的图像是原图在宽与高各放大两倍
    imshow("pyrUp", dst1);
	//2.2. 下采样
    pyrDown(src, dst2, Size(src.cols / 2, src.rows / 2));//降采样,生成的图像是原图在宽与高各缩小1/2
    imshow("pyrDown", dst2);


	//高斯不同
	Mat gray_src,gblur1,gblur2,gblur3,dogImg,dogImg2,dogImg3;
	cvtColor(src, gray_src, COLOR_BGR2GRAY);

	GaussianBlur(gray_src, gblur1, Size(3, 3), 0, 0);
    GaussianBlur(gblur1, gblur2, Size(3, 3), 0, 0);//方式一
    subtract(gblur1, gblur2, dogImg, Mat());//获取 DOG ,应该要低的gblur1减高的gblur2
    //将灰度图的0-255空间,转换到0-1空间(二值空间),让原本淡淡的图像变得清楚了
    normalize(dogImg, dogImg, 255, 0, NORM_MINMAX);//参数:255最大值,0最小值,NORM_MINMAX 最大最小化
    imshow("dogImg", dogImg);//能看到淡淡的猫的眼睛的轮廓
	GaussianBlur(gray_src, gblur3, Size(5, 5), 0, 0);
    subtract(gblur1, gblur3, dogImg2, Mat());//方式二
    normalize(dogImg2, dogImg2, 255, 0, NORM_MINMAX);
    imshow("dogImg2", dogImg2);//也能看到淡淡的猫的眼睛的轮廓

    subtract(gblur2, gblur1, dogImg3, Mat());//高减低的
    normalize(dogImg3, dogImg3, 255, 0, NORM_MINMAX);
    imshow("dogImg3", dogImg3);

	waitKey(0);
	return 0;
}

运行截图:

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

小案例:

1. 加载图片
2. 进行上采样(按’u’后):
3. 执行下采样(按’d’后):
4. 退出程序(按’Esc’后):

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace cv;


int main(){
	//1. 加载图像和显示原图
	Mat src=imread("E:/Experiment/OpenCV/Pictures/dog2.jpg");
	if(src.empty()){
		printf("could not load image...");
		return -1;
	}
	namedWindow("input_windows",CV_WINDOW_AUTOSIZE);
	imshow("input_windows",src);//显示图片
	
	Mat temp,dst;
	temp=src;
	dst=temp;
	while(true){
		int c;
		c = waitKey(10);
		if( (char)c == 27 ){//Esc键
			break;
		}
		else if( (char)c == 'u' ){ 
			pyrUp( temp, dst, Size( temp.cols*2, temp.rows*2 ) );
			printf( "** Zoom In: Image x 2 \n" );
		}
		else if( (char)c == 'd' )
		{ 
			pyrDown( temp, dst, Size( temp.cols/2, temp.rows/2 ) );
			printf( "** Zoom Out: Image / 2 \n" );
		}
		imshow( "output_windows", dst );
		temp = dst;
	}

	waitKey(0);
	return 0;
}

推荐博客

  1. https://blog.csdn.net/LYKymy/article/details/83153927
  2. https://blog.csdn.net/huanghuangjin/article/details/80958983
2016-11-22 15:34:55 Miss_yuki 阅读数 7193
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174435 人正在学习 去看看 陈槐

最近看一篇图像去雾的论文,看到算法中使用了图像的下采样和上采样,就去了解了一下。

上下采样的评判标准为看重(chong)采样时的采样频率与第一次采样将连续信号变为离散信号时的采样频率相比的大小,若小于第一次的采样频率则为下采样,若大于第一次的采样频率则为上采样。

下采样

在图像处理中,在图像超分辨重建的时候经常涉及对图像进行下采样。关于下采样,我看到一个很好的描述:对于一幅图像I尺寸为M*N,对其进行s倍下采样,即得到(M/s)*(N/s)尺寸的分辨率图像,当然s应该是M和N的公约数才行,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值,这种情况下像素个数缩减为原先的S的平方倍。

上采样

上采样可以用来进行图像放大,多采用内插方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。插值算法有很多种,例如基于边缘的图像插值算法和基于区域的图像插值算法。下面介绍一下插值滤波器。

它的思路分为两步:

1.在原先已经经过第一次差值的数字信号之间插0值
2.将插0值后的数字信号通过一个合适的低通滤波器进行滤波(低通滤波器的通带要大于原信号带宽×插值倍数)


最后说一下我在论文中看到的一个小点,在使用导向滤波器进行图像滤波时,先将输入图像和导向图像进行下采样,经过滤波后,再将滤波器的输出图像进行上采样得到重建后的图像。通过此方法,选取适当的采样率s就可以将运行时间从O(N)减小为O(s2N)。(0<s<1)是一个很好用的方法。


我们下期见!

2019-01-17 17:53:20 qq_34814092 阅读数 356
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174435 人正在学习 去看看 陈槐

Java OpenCV-4.0.0 图像处理09 图像的上采样和降采样及归一化

Java OpenCV-4.0.0 图像处理 图像的上采样和降采样及归一化

归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。
归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。
归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。


/**
 * OpenCV-4.0.0 图片上采样(放大)
 * @return: void  
 * @date: 2019年5月7日12:16:55
 */
public static void zoomIn() {
	Mat src=Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\99.png");
	Mat dst=new Mat();
	Imgproc.pyrUp(src,dst,new Size(src.cols()*2,src.rows()*2));
	HighGui.imshow("图片上采样(放大)", dst);
	HighGui.waitKey(0);
}

/**
 * OpenCV-4.0.0 图片降采样 (缩小)
 * @return: void  
 * @date: 2019年5月7日12:16:55
 */
public static void zoomOut() {
	Mat src=Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\99.png");
	Mat dst=new Mat();
	Imgproc.pyrDown(src,dst,new Size(src.cols()/2,src.rows()/2));
	HighGui.imshow("图片降采样 (缩小)", dst);
	HighGui.waitKey(0);
}

/**
 * OpenCV-4.0.0 图片归一化
 * @return: void  
 * @date: 2019年5月7日12:16:55
 */
public static void normalize() {
	Mat src=Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\99.png");
	Mat gray=new Mat();
	Mat image1=new Mat();
	Mat image2=new Mat();
	Mat mask=new Mat();
	Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
	Imgproc.GaussianBlur(gray, image1, new Size(3,3), 0);
	Imgproc.GaussianBlur(image1, image2, new Size(3,3), 0);
	Core.subtract(image1, image2, mask, new Mat());
	Core.normalize(mask, mask,255,0,Core.NORM_MINMAX);
	HighGui.imshow("图片归一化", mask);
	HighGui.waitKey(0);
}

图片归一化

2019-12-11 21:12:08 weixin_44225182 阅读数 82
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174435 人正在学习 去看看 陈槐

实验题目

    1.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的采样。
    2.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的量化。

实验原理

1.采样
    我们获取到的图像一般为模拟图像,要让计算机进行处理需将其数字化,采样的作用就是将模拟图像转变为数字图像。一般来说,采样间隔越大,所得图像像素数越少,空间分辨率越低,质量差,严重时出现马赛克效应;采样间隔越小,所得图像像素数越多,空间分辨率越高,图像质量好,但数据量大。
2.量化
    计算机软件得到了一个样本点(图片)的数据,然后它要用多少个二进制位去表示它(重现图片),如下图
在这里插入图片描述
根据上图,可以知道图像有一个灰度的概念
1bit 只有 2 个灰度级,0 和 1
2bit 有 4 个灰度级,0, 1, 2, 3
8bit 有 256 个灰度级,0 到 255

实验代码

1.采样

t=imread('t1.jpg')
t1=rgb2gray(t)
imshow(t1),title('原图') %原图像 需要将其先转换为灰度图像
t2=t1(1:2:end,1:2:end)
t3=t1(1:4:end,1:4:end)
t4=t1(1:8:end,1:8:end)
t5=t1(1:16:end,1:16:end)
figure,subplot(2,2,1),imshow(t2),title('1:2采样')
subplot(2,2,2),imshow(t3),title('1:4采样')
subplot(2,2,3),imshow(t4),title('1:8采样')
subplot(2,2,4),imshow(t5),title('1:16采样')

2.量化

t=imread('t1.jpg');
r=imread('t1.png');
t1=rgb2gray(t);
r1=rgb2gray(r);
t2=histeq(t1,64);
t3=histeq(t1,32);
t4=histeq(t1,16);
t5=histeq(t1,2);
r2=histeq(r1,64);
r3=histeq(r1,32);
r4=histeq(r1,16);
r5=histeq(r1,2);
imshow(t1);
figure,subplot(2,2,1),imshow(t2),title('量化 64')
subplot(2,2,2),imshow(t3),title('量化 32')
subplot(2,2,3),imshow(t4),title('量化 16')
subplot(2,2,4),imshow(t5),title('量化 2')
figure,imshow(r1)
figure,subplot(2,2,1),imshow(r2),title('量化 64')
subplot(2,2,2),imshow(r3),title('量化 32')
subplot(2,2,3),imshow(r4),title('量化 16')
subplot(2,2,4),imshow(r5),title('量化 2')

实验结果图

原图
在这里插入图片描述
采样对比图
在这里插入图片描述
采样分析:
    对于同样一副图像,不同的采样比例,所得的结果图是不一样的。拿采样比例1:2来说,意思是:对于原图像,每个2个像素点进行采样,采样图像与原图像差别不大。当采样比例为1:4和1:8时,采样所得的图像开始出现模糊。当采样比例达到1:16时,图像已经完全模糊掉了。这是因为对于原图像,1:16的比例只能获得原图像很少的特征点,很多像素点都被丢失了,所以看起来模糊。

原图
在这里插入图片描述
量化对比图
在这里插入图片描述
量化分析:
    其实量化的本质就是对0~255个灰度级进行分级,每个级用一个灰度值来表示。级数越多,其越接近原图像。当级数只有2时,会被分成0和255,也就是我们所说的黑白图像了。

更多

获取更多资料、代码,微信公众号:海轰Pro
回复 海轰 即可

没有更多推荐了,返回首页