图像处理
文章平均质量分 51
Alocus_
要每天学习!要进步!要自信!有任何问题联系我!
展开
-
使用python批量裁剪图片为目标大小
代码中有部分需要修改和优化的地方,请自行优化。如图片的命名,裁剪后拼接的话也需要标记出原始图片的大小才可以进行还原,不赘述。如果有错误,请私信!!原创 2023-02-11 20:20:21 · 2932 阅读 · 0 评论 -
hazerd论文中mat格式深度图转提取并转npy文件
【代码】hazerd论文中mat格式深度图转提取并转npy文件。原创 2023-01-20 23:36:55 · 364 阅读 · 0 评论 -
seaborn.pairplot sns.pairplot 绘制矩阵图
pairplot(data,hue,palette,x_vars,y_vars,kind,diag_kind,markers,height,aspect,corner,dropna,plot_kws,diag_kws)参数:data--要绘制的数据,为DataFrame类型;hue--取值为data中的列索引,为分组变量,根据不同颜色来区分各个变量;palette--为seaborn库颜色面板取值或者给出hue中各个类别对应颜色的字典;x_vars--data中需要用到的索引名组成的横坐原创 2021-05-13 23:14:23 · 3559 阅读 · 0 评论 -
傅里叶变换基函数可视化
% 用图像绘制:figure(1);M = 16;%图片的宽度N = 16;%图片的高度A = zeros(M,N);for k = 0:M for l = 0:N for x = 1:M for y = 1:N subplot(M,N,(k*(N)+l+1)); %画子图 A(x,y) = cos(2*pi*k*x/M + 2*pi*l*y/N) +...原创 2021-11-24 21:22:12 · 1163 阅读 · 1 评论 -
imageio.get_writer() ,用图片生成gif
imageio.get_writer(uri, format=None, mode='?', **kwargs)参数Parameters: uri:{str, pathlib.Path, file} The resource to write the image to, e.g. a filename, pathlib.Path or file object, see the docs for more info. format:str The fo..原创 2021-05-15 23:05:09 · 3330 阅读 · 1 评论 -
2D离散傅里叶变换基函数可视化
% 用图像绘制:figure(1);M = 16;%图片的宽度N = 16;%图片的高度A = zeros(M,N);for k = 0:M for l = 0:N for x = 1:M for y = 1:N subplot(M,N,(k*(N)+l+1)); %画子图 A(x,y) = cos(2*pi*k*x/M + 2*pi*l*y/N) + si..原创 2021-05-13 23:29:47 · 549 阅读 · 0 评论 -
RuntimeError: Expected 4-dimensional input for 4-dimensional weight 3 3 1, but got 3-dimensional inp
源代码GitHub - sanghyun-son/EDSR-PyTorch: PyTorch version of the paper 'Enhanced Deep Residual Networks for Single Image Super-Resolution' (CVPRW 2017)PyTorch version of the paper 'Enhanced Deep Residual Networks for Single Image Super-Resolution' (CVPRW 2017原创 2022-03-05 15:57:42 · 3487 阅读 · 1 评论 -
批量测试图像的LPIPS、SSIM、PSNR指标,并生成CSV文件结果
背景:由于论文需要,我将测试代码进行了修改,融入了LPIPS等指标,关于LPIPS介绍,可以查看博客:LPIPS图像相似性度量标准:The Unreasonable Effectiveness of Deep Features as a Perceptual Metric_Alocus的博客-CSDN博客_lpips度量代码:代码中有两大部分需要进行修改,我在代码中进行了标注。有疑问欢迎联系交流。# -*- coding:utf-8 _*-import argparseimport o原创 2022-02-27 20:09:00 · 6693 阅读 · 22 评论 -
【python、matlab】sRGB颜色空间与线性sRGB空间转换
python版本:def srgb2lrgb(I0): gamma = ((I0 + 0.055) / 1.055)**2.4 scale = I0 / 12.92 return np.where (I0 > 0.04045, gamma, scale)def lrgb2srgb(I1): gamma = 1.055*I1**(1/2.4)-0.055 scale = I1 * 12.92 return np.where (I1 > 0.原创 2021-08-08 22:38:51 · 1690 阅读 · 0 评论 -
Bringing Old Photos Back to Life微软老照片修复全解析(原理、代码、训练、测试)
挖坑,写一下该论文相关的信息,从原理、模型代码分析、测试、最后写模型的数据集及其训练。 (1)Bringing Old Photos Back to Life原理和测试(2)Bringing Old Photos Back to Life模型代码分析(3)Bringing Old Photos Back to Life全解析(4)...原创 2021-08-05 14:49:03 · 3190 阅读 · 6 评论 -
自编码器(基于Ian Goodfellow 等的Deeplearningbook)、变分自编码器详细解释
一、自编码器 自编码器是一种特殊的神经网络,经过训练,它能够还原输出到它的输入。其内部有一个隐藏层h描述了一种编码,能够表示输入。该网络可以看做两部分组成,一个编码器函数h=f(x),一个解码器能够进行r=g(h)的重构,如图1所示。如果一个自编码器仅仅简单地学到g(f(x))=x,那么它不算特别有用。相反,设计出来的自编码器应该不能够完美地学习这种还原。它们某些方面应会受到限制,这使得它们只能某种程度上进行这种还原,或者说仅还原训练数据相似的输出。因为模型被强制优先还原输入的某些方面,它通常学...原创 2021-07-05 01:18:04 · 1652 阅读 · 1 评论 -
pix2pix中的生成器和判别器详解
生成器:OUTPUT_CHANNELS = 3def downsample(filters, size, apply_batchnorm=True): initializer = tf.random_normal_initializer(0., 0.02) result = tf.keras.Sequential() result.add( tf.keras.layers.Conv2D(filters, size, strides=2, padding='same',原创 2021-06-17 22:53:30 · 5812 阅读 · 4 评论 -
特征匹配损失(feature matching loss,LFM),区别于但相似于感知损失
这种损失稳定了训练生成器必须在多个尺度上生成自然统计数据。从鉴别器的多个层中提取特征,并从真实图像和合成图像中学习匹配这些中间表示原创 2021-06-11 00:54:00 · 5629 阅读 · 0 评论 -
Deblurring Text Images via L0-Regularized Intensity and Gradient Prior(通过L0正则先验进行文本去模糊)
Deblurring Text Images via L0-Regularized Intensity and Gradient Prior观察下图,b e分别为清晰图像a和模糊图像d的像素强度直方图,c f分别为清晰图像a和模糊图像d的水平梯度直方图,基于他们之间差异,提出L0正则先验去噪。注:L0正则化的值是目标中非零项的个数。L0正则先验:记Pt(x)为文本图像x中像素强度非零的个数,Pt(x) = ||x||0记Pt(∇x) 为文本图像x中(水平)梯度非零的个数则 P(.原创 2021-06-05 10:20:33 · 1193 阅读 · 0 评论 -
二维离散傅里叶变换DFT基函数可视化
N x N图像的第( k,l )个傅里叶基函数:x方向的周期: k/N;y方向的周期:l/N原创 2021-06-02 00:23:53 · 1719 阅读 · 0 评论 -
matlab中使用二值化 腐蚀 膨胀 进行滤波
clc; close all; clear; workspace; fontSize = 14;grayImage = imread('test.jpg');[rows, columns, numberOfColorBands] = size(grayImage);if numberOfColorBands > 1 % 如果是彩色图像则转为灰度图像 grayImage = rgb2gray(grayImage);endfigure,imshow(grayImage,.原创 2021-06-02 00:23:06 · 1231 阅读 · 1 评论 -
图片metirc中的PSNR,SSIM实现
用作记录,以备不时之需:##################### metric####################def psnr(img1, img2): assert img1.dtype == img2.dtype == np.uint8, 'np.uint8 is supposed.' img1 = img1.astype(np.float64) img2 = img2.astype(np.float64) mse = np.mean((img原创 2021-05-31 22:54:56 · 363 阅读 · 0 评论 -
泊松编辑进行图像融合具体实现代码
一核心原理通过计算目标图像的梯度,然后通过泊松方程解最优化问题,从新的梯度恢复出修改后的图像。网上较多,且opencv中有函数和源代码实现。二代码源代码matlab下载:https://download.csdn.net/download/Crystal_remember/19129853三扩展我通过泊松融合实现了一个简单的动图效果,见:https://blog.csdn.net/Crystal_remember/article/details/117333098本文链接:https原创 2021-05-27 17:06:56 · 663 阅读 · 0 评论 -
通过泊松图像编辑融合图像,生成一段连续较真实的视频(附源码)
e原创 2021-05-27 17:05:59 · 1029 阅读 · 0 评论 -
seam carving算法原理,实现基于图像内容的缩放
一.原理:计算图像的能量图,能量图一般是图像像素的梯度模值,为了简化计算可先转换成灰度图像,然后直接采用如下公式(直接用x、y方向上的差分取绝对值,然后相加),其实这一步就是相当于边缘检测算法一样:通过能量图寻找最小能量线。最小能量线指的是需要被移除的那一列:首先需要以图像第一行或最后一行为开始行进行迭代。下面实现的为从图像最后一行开始,往上迭代。找出最后一行需要被移除的像素点后,设其坐标为P(x,y),然后往上一行寻找,寻找的点为P点的在y-1行中的三个相邻像素点中的能量最小值像素。也就是原创 2021-05-27 16:54:19 · 3852 阅读 · 2 评论 -
matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。
目录一.原理简介二.现有方法三.代码实现四.测试结果图一.原理简介主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在频谱图中的表现,如下图:第一张为原图,图中有较为规律的网纹(莫尔模式),图像在频率域中的频谱图如上方右图所示,可以发现其中包含八个较为明显的亮点,这些亮点在原图中就是网格。二.现有方法如果去掉这些亮斑,如下方左图所示,表现在原图中,就去掉了网格,如右下角图所示。如果从较专业图像处原创 2021-05-27 16:35:06 · 4910 阅读 · 3 评论 -
matlab中使用阈值二值化,腐蚀,膨胀,反色等操作进行图像处理,去噪声,网纹、摩尔纹等
有兴趣可以对下方的一些方法和参数进行更换,以达到更好的效果。主要涉及到二值化,阈值,腐蚀,膨胀,反色等clc; close all; clear; workspace; fontSize = 14;grayImage = imread('test.jpg');[rows, columns, numberOfColorBands] = size(grayImage);if numberOfColorBands > 1 % 如果是彩色图像则转为灰度图像 grayIm原创 2021-05-27 16:32:40 · 2531 阅读 · 3 评论 -
Keras Preprocesing Layers 中的Resizing、Rescaling
layers.experimental.preprocessing.Resizing(IMG_SIZE, IMG_SIZE), layers.experimental.preprocessing.Rescaling(1./255)调整大小层将图片大小变为 IMG_SIZE*IMG_SIZE缩放层将像素值标准化为[0,1], 如果将图片标准化为[-1,1],可尝试如下代码 layers.experimental.preprocessing.Rescaling(1./127.5...原创 2021-05-15 08:53:09 · 4284 阅读 · 0 评论 -
文件读取中 */* 即data_root.glob(‘*/*‘)
用glob获取所有文件并存入列表中。这里*的意思为获取所有文件,因此*/*的意思则为获取文件夹下的所有文件及它们的子文件。文件路径若为data_root: C:\Users\Administrator\.keras\datasets\flower_photos其中文件架构若为flower_photos||————————daisy |——————5547758_eea9edfd54_n.jpg||————————dandelion...原创 2021-05-14 20:08:49 · 2071 阅读 · 0 评论 -
matplotlib.pyplot.bar() plt.bar()
matplotlib.pyplot.bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kwargs)功能此函数用来画条形图参数 x:为条形图的横坐标,格式float or array-like height:条形图的高,格式float or array-like width:条形图的宽,格式loat or array-like, 默认为0.8...原创 2021-05-13 19:49:35 · 995 阅读 · 0 评论 -
1D离散傅里叶变换DFT基函数曲线可视化
频率v=K/N (K=0,1,…N/2)clear,clcfigure(1);%画布布局x = linspace(0,20,1000);y = [-1:1];[X,Y] = meshgrid(x,y);%循环计算出8个基函数for k = 0 : 7y1 = cos(2*pi*k*x/16);y2 = sin(2*pi*k*x/16);subplot(2,4,k+1) % 绘制子图kplot(x,y1,x,y2)title(sprintf("k = %d"..原创 2021-05-11 19:55:55 · 563 阅读 · 0 评论 -
OpenCV4 C++ 快速入门视频30讲 - 系列合集 源代码(B站:OPENCV学堂)
目录B站视频《OpenCV4 C++ 快速入门视频30讲 - 系列合集》quickdemo.cppquickopencv.htest440.cppB站视频《OpenCV4 C++ 快速入门视频30讲 - 系列合集》下面为该课程中的全部源代码,纯手打,如有错误和其他问题,欢迎留言(涉及到的权重和图片代码等文件,如果需要请看评论区)quickdemo.cpp#include <quickopencv.h>void QuickDemo::colorSpace_De原创 2021-04-27 19:34:41 · 1648 阅读 · 2 评论