OpenCV学习笔记(十七):图像修补:inpaint()

OpenCV图像修复函数inpaint() 前言 在实际应用或者是工程当中,经常需要对图像进行修复,在OpenCV中提供了能够对含有较少“污染”或者水印的图像进行修复的inpaint()函数 函数原型 void cv::inpaint(InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags) src 输入待修复图像 inpaintMask 修复掩码 dst 修复后输出图像 inpaintRad 阅读详情

OpenCV学习笔记(十七):图像修补:inpaint()

inpaint()函数

使用区域邻域在图像中还原选定区域。

void inpaint( 
InputArray src, 			// 表示要修复的图像,8位三通道或三通道
InputArray inpaintMask,		// 表示修复模板(掩模),8位单通道,非零区域为修补区域
OutputArray dst, 			// 表示修复后的图像
double inpaintRadius, 		// 表示该算法所考虑的需要修补的每个点的圆形邻域的圆形领域半径。
int flags 					// 表示修复使用的算法	
									// CV_INPAINT_TELEA  Alexandru Telea 算法 .
									// CV_INPAINT_NS 基于 Navier-Stokes 方程的算法
);

感觉两种算法修复效果都还不错,但是都需要事先准备修复模板mask,也就是inpaintMask 这个参数。
例子里面用鼠标在图片上划线,划线的同时也更新了mask,而真正应用的时候需要事先设计好这个mask。

示例:

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

#define WINDOW_NAME0 "【原始图参考】"        //为窗口标题定义的宏 
#define WINDOW_NAME1 "【原始图】"        //为窗口标题定义的宏 
#define WINDOW_NAME2 "【修补后的效果图】"        //为窗口标题定义的宏 

Mat srcImage0,srcImage1, inpaintMask;
Point previousPoint(-1,-1);//原来的点坐标

int main()
{
    //输出一些帮助信息
    printf("\n\n\n\t欢迎来到【图像修复】示例程序~\n");
    printf(  "\n\t请在进行图像修复操作之前,在【原始图】窗口中进行适量的绘制"
        "\n\n\t按键操作说明: \n\n"
        "\t\t【鼠标左键】-在图像上绘制白色线条\n\n"
        "\t\t键盘按键【ESC】- 退出程序\n\n"
        "\t\t键盘按键【1】或【SPACE】-进行图像修复操作 \n\n"   );

    //1、载入原图并显示,初始化掩膜和灰度图
    Mat srcImage = imread("F:/C++/2. OPENCV 3.1.0/TEST/inpaint.jpg", 1);
    if(!srcImage.data ) { printf("读取图片错误,请确定目录下是否有imread函数指定图片存在~! \n"); return false; }

    srcImage0 = srcImage.clone();
    srcImage1 = srcImage.clone();
    inpaintMask = Mat::zeros(srcImage1.size(), CV_8U);

    //显示原始图参考
    imshow(WINDOW_NAME0, srcImage0);
    //显示原始图
    imshow(WINDOW_NAME1, srcImage1);
    //设置鼠标回调消息
    setMouseCallback( WINDOW_NAME1, On_Mouse, 0 );

    //轮询按键,根据不同的按键进行处理
    while (1)
    {
        //获取按键键值
        char c = (char)waitKey();

        //键值为ESC,程序退出
        if( c == 27 )
            break;

        //键值为2,恢复成原始图像
        if( c == '2' )
        {
            inpaintMask = Scalar::all(0);
            srcImage.copyTo(srcImage1);
            imshow(WINDOW_NAME1, srcImage1);
        }

        //键值为1或者空格,进行图像修补操作
        if( c == '1' || c == ' ' )
        {
            Mat inpaintedImage;
            inpaint(srcImage1, inpaintMask, inpaintedImage, 3, CV_INPAINT_TELEA);
            imshow(WINDOW_NAME2, inpaintedImage);
        }
    }

    waitKey(0);
    return 0;
}
static void On_Mouse( int event, int x, int y, int flags, void* )
{
    //鼠标左键弹起消息
    if( event == CV_EVENT_LBUTTONUP || !(flags & CV_EVENT_FLAG_LBUTTON) )
        previousPoint = Point(-1,-1);
    //鼠标左键按下消息
    else if( event == CV_EVENT_LBUTTONDOWN )
        previousPoint = Point(x,y);
    //鼠标按下并移动,进行绘制
    else if( event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON) )
    {
        Point pt(x,y);
        if( previousPoint.x < 0 )
            previousPoint = pt;
        //绘制白色线条
        // 同时在源图和掩模图 中绘制涂鸦;
        line( inpaintMask, previousPoint, pt, Scalar::all(255), 5, 8, 0 );
        line( srcImage1, previousPoint, pt, Scalar::all(255), 5, 8, 0 );
        previousPoint = pt;
        imshow(WINDOW_NAME1, srcImage1);
    }
}

结果:
在这里插入图片描述
CV_INPAINT_TELEA 算法:
在这里插入图片描述
CV_INPAINT_NS 算法:
在这里插入图片描述

inpaint-图像修补算法 图像的修补技术由inpaint函数实现,它可以用来从扫描的照片中清除灰尘和划痕,或者从静态图像或视屏中去除不需要的物体。 函数原型C++: void inpaint( InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags ) 1)InputArray类型的src,输... 阅读详情

相关推荐

Opencv之实现图像修复intpaint()函数

无意中看到inpaint()这个函数,它具有图像修复功能,这个应该很有趣,故查找了相关资料,整理好并呈现在这里。 一、inpaint()函数介绍 void inpaint( const Mat& src, const Mat& inpaintMask, Mat& dst, double inpaintRange, int flags );

五仁月饼哭了的博客 1万+

OpenCV实现图像去水印功能(inpaint)

使用OpenCV C++ 进行简单图像水印去除

hulinhulin的专栏 1798

使用opencv函数inPaint()人像去痣

#include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/photo.hpp" #include&lt;iostream&gt; using namespace std; using namespace cv; #define WINDOW_NAME1 "原始图" Mat imgSrc,...

andylanzhiyong的博客 3773

c++数据处理----图像修补:cv::inpaint()

c++数据处理----图像修补:cv::inpaint()

qq_46107892的博客 1393

opencv之图像修补

学习内容: 1、图像修补 学习产出: 1、图像修补 图像的修补技术由inpaint函数实现,它可以用来从扫描的照片中清除灰尘和划痕,或者从静态图像或视屏中去除不需要的物体。 void inpaint( InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags ) 1)InputArray类型的src,输入图像,填Mat类的对象即可,且需要8位单通道或者三通道图像; 2)InputA

maggiesir的博客 1201

OpenCV每日函数:图像修复算法——Inpaint函数

在上述代码中,cv2.inpaint函数的第一个参数是待修复的图像,第二个参数是掩膜,第三个参数是修复算法的半径大小(影响修复的范围),第四个参数是修复算法的类型。根据实际需求选择合适的算法类型即可。图像修复是计算机视觉领域中一个重要的任务,它可以用于去除图像中的噪声、遮挡物或损坏部分,以及恢复缺失的图像信息。OpenCV是一个广泛使用的开源计算机视觉库,提供了丰富的函数和算法来进行图像处理和修复。掩膜是一个与原始图像具有相同尺寸的二值图像,其中被遮挡或缺失的区域用白色表示,而其他区域用黑色表示。

web_bug407的博客 2234

OpenCV4.5.5学习笔记(十七):分水岭算法watershed(),图像修补inpaint()

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、分水岭算法watershed()二、图像修补inpaint()总结 前言 笔者本科时候有幸接触了OpenCV3.2.0版本的学习,后因考研压力不得不暂时停下学习的脚步,现在考研任务结束了,未来的导师也是从事的该方向,笔者又开始了新一轮的学习。回来发现OpenCV已经出到了4.5.5版本,遂重新下载新版本并决定记录这一学习历程。由于笔者水平有限,可能有错误之处还请诸位大佬多多包涵并烦请指出,让我们一起学习,共同进步。 首先.

qq_43264167的博客 961

Python,OpenCV中的图像修复——cv2.inpaint()

这篇博客将介绍如何通过OpenCV中图像修复的技术——cv2.inpaint() 去除旧照片中的小噪音、笔划等。并实现俩种方法的修复(快速行进算法以及流体力学算法)

qq_40985985的博客 6563

图像处理:基于cv2.inpaint()图像修补

图像处理:基于cv2.inpaint()图像修补。今天我们将学习如何通过一种“修复”的方法消除旧照片中的小噪音,笔画等。当然,经过我的测试你也可以将其用于削弱混杂了其他的颜色的图像。大多数人家都会有一些旧的的旧化照片,上面有黑点,一些笔触等。你是否曾经想过将其还原?我们不能简单地在绘画工具中擦除它们,因为它将简单地用白色结构代替黑色结构,这是没有用的。在这些情况下,将使用一种称为图像修复的技术。基本思想很简单:用附近的像素替换那些不良区域,使其看起来和邻近的协调。考虑下面显示的图像。

m0_62919535的博客 7500

OpenCVTest-InpaintDemo5.5.rar_MFC,opencv_opencv inpaint_opencv图像

基于openCV的图像修复算法的仿真,结合MFC接口

【脑电分析系列】第7篇:频域分析基石 — 功率谱密度(PSD)的计算与常见方法对比

本文探讨了脑电图(EEG)频域分析的核心方法——功率谱密度(PSD)。通过对比基于快速傅里叶变换的周期图法和更稳健的Welch's方法,指出后者通过分段、加窗和平均处理,能有效降低估计方差,更适合分析非稳态的脑电信号。文章详细解析了关键参数设置对频率分辨率和统计稳定性的影响,并提供了Python计算实现。PSD分析将复杂的脑电信号转换为直观的频域特征,为研究认知功能和神经疾病提供重要依据。

qq_32516809的博客 1802

opencv3实现图像修补-inpaint函数

#include #include using namespace std; using namespace cv; bool g_bDrawing = false; Point g_CurrPoint, g_OrgPoint; int g_nThick = 5, g_nBlue = 255, g_nGreen = 255, g_nRed = 0; int g_nImageOneValue =

qq_23880193的专栏 6825

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3359

利用OpenCV的函数inpaint()实现图像的污点修复

图像修复技术就是利用图像中损坏区域边缘的像素,根据像素值的大小以及像素间的结构关系,估计出损坏区域可能的像素排列,从而去除图像中受污染的区域。图像修复不仅可以去除图像中得“划痕”,还可以去除图像中得水印、日期等。 OpenCV 提供了能够对含有较少污染或者水印的图像进行修复的函数inpaint(),其原型如下: void cv::inpaint( InputArray src, InputArray inpaintMask, OutputArray dst, dou

昊虹AI笔记 1万+

倍加福(P+F)R2000修改雷达IP

在调试车子的时候,用到了倍加福R2000的一款雷达,设备启动建图时发现建不了图,于是查看/scan发现话题无数据,尝试ping雷达接口发现ping不通,应该是IP地址与上位机端口的IP地址不对。首先查看雷达的IP地址,这个在雷达上有两个按键,按下后可以显示IP: 按两下右边的键再按一下左边的键雷达上会显示出IP号,这里拍的不是很清楚。查看到开始时雷达IP地址为192.168.111.10,而上位机ping的IP地址为192.168.188.50.与实际不同,所以需要对雷达进行配置。一台windows笔记本

YiYeZhiNian的博客 5890

第10篇:Agent + 爬虫 = 全自动数据采集专家

在企业级数据采集场景中,传统爬虫的痛点已经到了无法忽视的地步:而Agent + 爬虫的组合,就是这些痛点的终极解决方案。它的核心逻辑是:把爬虫从「人工写死的固定执行脚本」,升级为「能自主分析、自主决策、自主适配、自主修复的智能采集机器人」。我们在生产环境中做过对比测试:传统爬虫开发10个网站的采集脚本需要3人天,而Agent采集机器人只需要3分钟,页面改版后的修复成本从1人天降到了0,采集任务的成功率从62%提升到了95%以上。终端执行以下命令,安装基础依赖,与前9篇环境完全兼容: 二、核心能力拆解:Age

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1576

OpenCV 图像修补

OpenCV中图像修补技术由inpaint函数实现。 基本步骤是:先修复区域边缘再逐步向内推进修复。 可以用来清除照片灰尘、划痕或者从静态图像及视频中去除不需要的物体。 图像修补函数—cv2.inpaint() def inpaint(src, inpaintMask, inpaintRadius, flags, dst=None): # inpaint(src, inpaintMask, in...

小鹏AI 2400

Calibre 3Dstack --每日一个命令day27【overlap】(3-27)

本文介绍了Calibre3Dstack中overlap命令的使用方法。该命令用于检查两个已放置层之间的重叠量是否符合要求,支持设置检查名称、层类型、堆叠范围、检查方向等参数。关键参数包括:-constraint指定重叠约束条件,-exact控制百分比精度,-by_area切换为面积检查模式,-intersection报告相交区域。检查结果可通过RVE选项定制显示方式,适用于3D堆叠设计中的层间重叠验证场景。

u013620135的博客 112

【opencv】 OpenCV 图像修复:cv2.inpaint()使用示例

cv2.inpaint()通过智能算法填充图像中的指定区域(如划痕、水印、遮挡物等),基于周围像素信息重建被破坏的区域。

weixin_43510208的博客 2797

uniapp - 实现APP后台持续定位+手机息屏后能持续上传位置信息数据,详解后台保活持续运行+手机锁屏保证后台持续/实时定位的解决方案及示例源码(完美兼容安卓android与苹果ios系统手机)

使用uniapp开发app实现后台保活定位能力,uniapp实时定位保活 息屏定位后台运行,uniapp APP实时定位高德 后台运行 支持锁屏息屏运行,持续获取定位信息,uniapp App端后台间隔时间发送定位功能实现,UniApp实现手机应用常活,固定时间内上传手机位置信息,后台(或锁屏)持续/实时定位的实现方案,uni-app后台持续定位,锁屏后能持续上传位置信息,实现后台定位持续无限制定位高德定位,百度定位,UniApp后台持续定位保如何在APP退到后台时保持定位服务,uniapp 切换app仍能

🏆 前端领域优质创作者 1万+

Python 爬虫项目:爬取百度贴吧帖子,保存标题与评论内容

在 Python 爬虫技术的学习与实战体系中,贴吧类动态内容爬取是典型的入门进阶案例,百度贴吧作为国内主流的社区论坛平台,其页面结构规范、数据载体清晰,非常适合用于巩固爬虫核心技术栈。本次实战项目基于requests请求库与解析库实现完整的爬取流程,从网页请求、数据解析、内容提取到本地持久化存储全链路落地,既能掌握基础爬虫的核心逻辑,也能理解网页结构化数据解析的通用思路,同时规避爬虫常见的反爬基础策略,具备极高的实战参考价值。本文核心价值。

2503_91057718的博客 2543

【Python】OpenCV中的cv2.inpaint()函数

概念 修复是图像插值。数字修复算法在图像插值,照片恢复,缩放和超分辨率等方面具有广泛的应用。 大多数人会在家里放一些旧的退化照片,上面有一些黑点,一些笔画等。你有没有想过恢复它?我们不能简单地在绘画工具中擦除它们,因为它将简单地用白色结构替换黑色结构,这是没有用的。在这些情况下,使用称为图像修复的技术。基本思路很简单:用邻近的像素替换那些坏标记,使其看起来像是邻居(取自维基百科),考虑下面显示的图像: 库函数 dst = cv2.inpaint(src,mask, inpaintRadiu

mjiansun的专栏 8734

基于 MATLAB 的 FastICA 算法实现语音信号盲分离

FastICA 算法通过最大化信号的非高斯性,找到独立成分,从而实现信号的分离。这些混合的信号被称为盲源信号,我们希望通过分析混合信号,将它们分离出来以便进行进一步的处理和分析。FastICA 是一种常用的盲源信号分离算法,它基于统计学原理,通过寻找独立成分来实现信号的分离。FastICA(独立成分分析)是一种常用的盲源信号分离算法,在语音和图像处理领域都有广泛的应用。本文将介绍如何使用 MATLAB 实现 FastICA 算法来实现语音信号的盲分离,并提供相应的源代码。FastICA 算法原理。

学习使你进步。 2024

opencv-图像修补,图像修复,inpaint

//---------------------------------【头文件、命名空间包含部分】---------------------------- // 描述:包含程序所使用的头文件和命名空间 //------------------------------------------------------------------------------------------------

hb707934728的博客 5695

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

OpenCV-Python官方教程-33-图像修补

1. 目标: 使用修补技术去除老照片中小的噪音和划痕 使用 OpenCV 中与修补技术相关的函数 2. 基础 在我们每个人的家中可能都会几张退化的老照片,有时候上面不小心在上面弄上了点污渍或者是画了几笔。你有没有想过要修复这些照片呢?我们可以使用笔刷工具轻易在上面涂抹两下,但这没用,你只是用白色笔画取代了黑色笔画。此时我们就要求助于图像修补技术了。这种技术的基本想法很简单:使用坏点周围的像素取代坏点,这样它看起来和周围像素就比较像了。如下图所示: 为了实现这个目的,科学家们已经提出了好几种算法,Ope

Galen_xia的博客 1887

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python基于OpenCV的图像修复技术

一、实现效果预览 左边为修复前图像 ,中间为掩模图,右边为修改复图像如下 二、修复算法介绍 1、算法INPAINT_TELEA介绍: 基于快速行进算法(FMM),从待修补区域的边界向区域内部前进,先填充区域边界像素。 选待修补区域小的领域,使用领域归一化加权和更新修复像素。(先修复待修改区域的边界,依据边界外正常的像素向内修复) 如图: 2、算法INPAINT_NS介绍: 通过匹配待修复区域的梯度相邻来延伸等光强线,灰度相等的点连成线,通过填充颜色使区域内的...

m0_49047167的博客 9675

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats()
下一篇: OpenCV学习(二十) :直方图匹配、对比:calcHist(),minMaxLoc(),compareHist()
Leon_Chen0
博客等级 码龄11年 372粉丝 111原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值