图像处理基础知识
文章平均质量分 65
Mr.Q
纸上得来终觉浅,绝知此事要躬行。 ---陆游
展开
-
pyclipper和ClipperLib操作多边型
(3) 添加现有clipper头文件和源码 clipper.cpp和clipper.hpp。参数MiterLimit=10是尖角(左图),默认值是2,圆角(右图)(2)vs2019配置clipper环境,只需要添加包含目录即可。MiterLimit默认2圆角(左图),10尖角 (右图)(1)这里使用旧版clipper,下载后解压。原创 2023-11-16 11:10:54 · 668 阅读 · 0 评论 -
【图像处理知识复习】基础算法Matlab实现
1) Matlab实现: 百度云链接 密码:7xcl2) Matlab代码+文档说明3) 总共实现58个 主要包括: 求图像 灰度直方图(GrayScaleHistogram.m) γ校正(gammaCorrection) 对比度拉伸(constrastStretch) 灰级窗(grayLevelWindow) 灰级窗切片(grayLevelWindowSection) 动态...原创 2018-06-06 16:21:48 · 2050 阅读 · 0 评论 -
matlab 自带函数hist画一个图像的直方图
a = double(imread('rice.png')); % matlab自带图片hist(a(:),10); % 分成十个bin效果图:[N,X] = hist(...) also returns the position of the bin centers in X.[no,xo] = hist(a(:),10);no是每个bin对应的y值xo是每个bin的中心位置x值...原创 2018-06-25 09:14:03 · 15898 阅读 · 0 评论 -
图像的DCT算法
一,背景介绍 DCT,即离散余弦变换,常用图像压缩算法,步骤如下 1)分割,首先将图像分割成8x8或16x16的小块; 2)DCT变换,对每个小块进行DCT变换; 3)舍弃高频系数(AC系数),保留低频信息(DC系数)。高频系数一般保存的是图像的边界、纹理信息,低频信息主要是保存的图像中平坦区域信息。二,图像 二维DCT变换就是将二维图像从空间域转换到频率域。形象的说,就是计算出图像...原创 2018-06-27 14:58:09 · 78073 阅读 · 2 评论 -
Matlab 图像分块(不重叠、重叠)
一,不重叠分块效果: clear;clc;img = imread('/media/P1.jpg');%% resize the image into the new size with 500x*500yr_img = img(:, :, 1);g_img = img(:, :, 2);b_img = img(:, :, 3);[row, col] = siz...原创 2018-11-13 21:36:16 · 19314 阅读 · 3 评论 -
python 文件排序
一,1.jpg, 2,jpg, 3.jpg形式image_list = os.listdir(img_full_name)image_list.sort(key=lambda x: int(x[:-4]))二,数字和字母组合形式(P1_1.jpg, P1_2.jpg, P1_3.jpg)blocks_list = os.listdir(blocks_path)sStr2 =...原创 2018-11-13 22:01:26 · 1307 阅读 · 0 评论 -
图像畸变矫正算法实现 matlab版
真正的相机镜头不理想,并在图像中引入一些失真。 为了解释这些非理想性,有必要在透视投影的方程中添加失真模型。一、原图如下:二、实现的效果图三、算法具体实现function undistorted_img = undistortImage(img, K, D)% Corrects an image for lens distortion.% K为内参矩阵,用来归一...原创 2019-04-04 16:29:42 · 32612 阅读 · 0 评论 -
图像显著性检测论文及代码汇总
版权声明:All rights. https://blog.csdn.net/u010736662/article/details/88930849 </div> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_h...转载 2019-04-09 10:40:31 · 2406 阅读 · 0 评论 -
matlab 归一化等操作
一、今天看到一行归一化代码,觉得特别厉害,记录下来:%normalize sal to [0, 1]sal = reshape(mapminmax(sal(:)',0,1),size(sal)); 二、待续。。。原创 2019-05-10 16:47:33 · 1389 阅读 · 0 评论 -
python 两直线的夹角
class Point(object): def __init__(self, x=0, y=0): self.x = x self.y = yclass Line(object): # 直线由两个点组成 def __init__(self, p1=Point(0, 0), p2=Point(2, 2)): self.p...原创 2019-08-22 10:17:52 · 9071 阅读 · 0 评论 -
【图像处理知识复习】14 Laplacian 二阶微分算子Matlab实现
%题目:Laplacian微分算子 二阶微分算子%意义:二阶微分比一阶微分更加敏感,尤其是对斜坡渐变得细节。前面讲的微分算子都有两个模板,二阶微分算子只有一个模板:实现效果:Matlab代码实现:%%%题目:Laplacian微分算子 二阶微分算子1%意义:二阶微分比一阶微分更加敏感,尤其是对斜坡渐变得细节。最简单的各项同性微分%算子是Laplacia...原创 2018-05-15 15:20:01 · 5600 阅读 · 0 评论 -
【图像处理知识复习】03对比度线性拉伸matlab,C++实现
算法:(1), 通过画灰度直方图点击打开链接,估计目标物灰度范围。(2), 求斜率,即斜率大于1,则拉伸;(3), 根据线性公式,求拉伸后灰度值,如下图1. matlab代码:%题目: 对比度拉伸%意义:所期望观察的对象因对比度不足而不够清晰,需进行对比度拉伸。%灰度值的分段线性映射%已知条件:原图像的目标景物灰度范围[fa,fb],拉伸后范围在[ga,gb]。%实现方法:目标景物灰度范...原创 2018-05-08 17:00:33 · 4377 阅读 · 0 评论 -
【图像处理知识复习】13 Sobel一阶微分算法 C++,Matlab实现
两个模板,分别求水平方向,和竖直方向的梯度信息。效果如下:1. Matlab实现:%一种奇数(3x3)模板下的全方向微分算子。%%clc;clear;f = rgb2gray(imread('D:/Code/Image/classic.jpg'));figure('name','原图'),imshow(f);f = double(f);[row,col] = size(f);%%...原创 2018-05-15 15:05:02 · 2212 阅读 · 0 评论 -
访问图像像素的常见方式
#include <opencv2/opencv.hpp>#include <opencv2/core/core.hpp>#include <iostream>using namespace std;using namespace cv;int main(){//1,最快方式,利用 C[] Mat src = imread("D:/Code/im...原创 2018-04-12 21:36:57 · 403 阅读 · 0 评论 -
【图像处理知识复习】05基于灰度变换的伪彩色方法matlab,C++实现
算法:通过三个不同函数(这里是三个分段线性函数),将一个灰度值映射三个不同灰度值,分别保存在三个不同的矩阵中,再把三个矩阵的值分别赋值到一个新矩阵的三个通道中,这个新矩阵就是伪彩色图像矩阵,这样就由一张灰度图,得到一张伪彩色图片。三个映射函数如下:1. matlab代码:%题目:基于灰度变换的伪彩色方法%意义:将亮度低的映射为蓝色(冷色),亮度高的映射为红色(暖色)。%方法:分别用三个矩阵保存...原创 2018-05-09 18:02:59 · 10095 阅读 · 0 评论 -
【图像处理知识复习】06图像的平移和镜像的matlab,C++实现
一,平移先给效果,直观感受下,向右下角平移:1. matlab代码实现:%题目:图像平移%公式:I = i+△i; J = j+△j。clc;clear;f = rgb2gray(imread('D:\Code\Image\classic.jpg'));figure,imshow(f);%确定平移后画布[row,col] = size(f);move_i = 40;%移动垂直方...原创 2018-05-09 19:15:31 · 666 阅读 · 0 评论 -
【图像处理知识复习】07图像的旋转matlab,C++实现
先给出效果,直观感受下(会有空洞问题,紧跟的后面文章会解决):算法:分别用两个矩阵保存行、列号值,据公式(I = icost-jsint; J = isint+jcost。旋转角度t给定。),旋转行列号,新画布,填充。1. matlab实现:%题目:图像的旋转%公式;I = icost-jsint; J = isint+jcost。旋转角度t给定。f = imread('D:\Code\Im...原创 2018-05-10 10:48:26 · 308 阅读 · 0 评论 -
【图像处理知识复习】08图像旋转后空洞问题处理 Matlab
算法:遍历旋转后图像,判断当前点是否为空穴(四近邻像素值都大于0,且当前点等于0)。邻近插值法,则左边像素替代当前0像素,如果均值插值,则取四近邻均值。效果如下:1. Matlab代码如下:%题目:图像的旋转,(1)邻近插值法,(2)均值插值,处理空穴。%旋转公式;I = icost-jsint; J = isint+jcost。旋转角度t给定。%这里空穴,指的是当前0像素的四近邻像素值都大...原创 2018-05-14 09:17:36 · 4067 阅读 · 0 评论 -
【图像处理知识复习】09基于等间隔的图像缩小方法实现 Matlab,C++
%题目:基于等间隔采样的 图像缩小方法%已知:采样间隔,行k1, 列k2;如果k1=k2,则为等比例缩小,k1<1,k2<1。%公式:遍历完缩小后图像,g(i,j) = f(round(i*(1/k1)), round(j*(1/k2))); round(i*(1/k1))采样行坐标。f为原图像效果如下:1. Matlab代码实现:clc;clear;f = rgb2gray(i...原创 2018-05-14 10:14:35 · 3517 阅读 · 0 评论 -
【图像处理知识复习】10图像缩放到任意大小 C++实现
算法类似于前面讲的点击打开链接,不同的是,这里实现的缩小,放大都可以,可以缩放到任意大小。条件:给出图像,和要缩放到的大小。效果如下:C++代码实现如下:#include <opencv2/opencv.hpp>using namespace cv;Mat my_resize(const Mat &, int, int);int main(){ Mat img =...原创 2018-05-14 14:55:08 · 6298 阅读 · 0 评论 -
【图像处理知识复习】01画灰度直方图matlab, C++ 实现
灰度直方图是对图像中灰度级分布的统计,横坐标为灰度值,纵坐标是像素个数(也可以采用当前像素值个数占总像素个数的百分比)。这里直接统计个数。1. matalb代码如下:%画灰度直方图%1, 读取图像clc;clear;image = imread('D:\Code\Image\classic.jpg');image = rgb2gray(image);figure,imshow(ima...原创 2018-05-07 15:59:24 · 3449 阅读 · 1 评论 -
【图像处理知识复习】02伽马校正matlab,C++实现
1. 背景:伽马校正可以用来调整图像的亮度,公式为 I = I^gamma。当gamma>1,高光部分动态范围被压缩,低光部分动态范围被扩展(使低光部分的细节可以看清),图像整体变暗;当gamma<1,高光部分被扩展,低光部分被压缩,图像整体变亮。如图:2. matlab代码:clc;clear;gamma = 0.3;img = imread('D:/Code/Image/h...原创 2018-05-07 21:44:09 · 6737 阅读 · 0 评论 -
【图像处理知识复习】11高斯滤波(滤波,卷积)Matlab,C++实现
原理:当前像素值,是由周围像素值决定。通过模板内的值与图像卷积,模板内的值可以直接给定,值有下降的过程即可,也可以通过二维高斯函数生成,这里是通过二维高斯函数生成。效果如下: 二维高斯函数,定义一个和原图一样大小的高斯函数图像,sigmma取1,其中(x0, y0)是图像的中心:这个截取的模板大小为5x5,以(x0, y0)为中心截取:1. Matlab代码实现:...原创 2018-05-15 09:50:58 · 1993 阅读 · 0 评论 -
【图像处理知识复习】12Roberts交叉微分算子C++,Matlab实现
两个模板,分别提前不同的对角方向信息,该微分算法可以提提取目标的细节轮廓。效果如下:1. Matlab代码实现:%方法:2x2模板,当前像素f(i,j)在左上,g(i,j)=|f(i+1,j+1)-f(i,j)| + |f(i+1,j)-f(i,j+1)|%即模板是[-1 0;0 -1]和[0 -1;1 0],对角像素相减%%clc;clear;f = rgb2gray(imread('D...原创 2018-05-15 10:30:55 · 2391 阅读 · 0 评论 -
【图像处理知识复习】04直方图均衡化matlab,C++实现
原理:直方图均衡化就是对整个图像的非线性对比度拉伸,使得灰度动态范围扩展到0到255。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(以原始灰度值...原创 2018-05-09 12:29:19 · 476 阅读 · 0 评论