图像处理
superdont
电子工业出版社优秀作者,代表作《OpenCV轻松入门》(累计印刷超过20次),《计算机视觉40例》等。
展开
-
python3.9安装dlib问题
在python3.9之前,直接安装dlib问题不大。采用的的方式有两种>第1种:pip install dlib第2种:在官网下载dlib后解压,到setup.py文件夹下安装,具体为:python setup.py install但是,在python3.9中,需要先下载visual studio,并选择“使用C++的桌面开发”,完成安装。接下来,要安装依赖库cmake和boost,然后再安装dlibpip install dlib...原创 2021-09-12 15:04:13 · 5437 阅读 · 1 评论 -
opencv+python实现艺术字
使用python+opencv实现艺术字# -*- coding: utf-8 -*-"""Created on Sat Oct 27 15:43:10 2018@author: 李立宗 lilizong@gmail.com《计算机视觉实战——Python+OpenCV》 电子工业出版社撰稿中,预计2022年年中出版"""import cv2import numpy as np#读取原始载体图像lena=cv2.imread("image\lena.bmp"...原创 2021-04-28 19:11:58 · 1613 阅读 · 0 评论 -
可视水印的实现——2使用图像加法
# 处理思路:# 1.首先将载体图像中与水印图像中文字部分置零# 2.将水印反色后加载到处理后的载体图像上# -*- coding: utf-8 -*-"""Created on Sat Oct 27 15:43:10 2018@author: 李立宗 lilizong@gmail.com《计算机视觉实战——Python+OpenCV》 电子工业出版社撰稿中,预计2022年年中出版"""# 处理思路:# 1.首先将载体图像中与水印图像中文字部分置零# 2.将水印反色后加.原创 2021-04-28 19:06:00 · 247 阅读 · 0 评论 -
可视水印的实现——1使用加法实现(add,+)
使用加法将水印添加到图像内部。需要注意,同样是加法,两种加法不一致。以八位位图为例,其最大值是255,则:add:计算饱和值,也就说是,和超过255,结果仍旧是255 +:计算取余求和。也就是说,如果和超过255,对255取余数。# -*- coding: utf-8 -*-"""Created on Sat Oct 27 15:43:10 2018@author: 李立宗 lilizong@gmail.com《计算机视觉实战——Python+OpenCV》 电子工业出版社.原创 2021-04-28 19:03:31 · 275 阅读 · 0 评论 -
OpenCV在VC++2008 Express中的一个可恶错误!
昨天装OpenCV,首先下载了VC++ 2010 Express,结果出现错误,无奈看到有VC++ 2008的详细安装向导解释,于是又安装了2008,结果还是总出现下面的错误:===================================================================1>------ Build started: Project: opencvhello, Configuration: Debug Win32 ------1>Compiling...1>opencv原创 2010-09-16 18:24:00 · 2460 阅读 · 1 评论 -
读入图像文件并显示【C#图像处理学习笔记】
说明:该系列读书笔记为《C#数字图像处理算法典型事例》(赵春江 编著,人民邮电出版社,2009)读书笔记。详细内容,请参考原始图书。原创 2010-09-20 11:05:00 · 3962 阅读 · 0 评论 -
图像添加噪声【OpenCV学习笔记1】
<br />// Xoo.cpp : Defines the entry point for the console application.#include "cv.h"#include "highgui.h"int main( int argc, char** argv ){ // 结构中载入图像:图像也是BMP图像(cvLoadImage)或者其它格式 // XML/YAML (cvLoad) CvImage img(argc > 1 ? argv[1] : "lena原创 2010-09-27 14:53:00 · 13987 阅读 · 11 评论 -
图像的像素点操作【OpenCV学习笔记3】
<br /> <br /> <br /> <br />/* 功能:读入图像文件,做图像反转,然后显示图像在屏幕上*/#include "stdafx.h"#include <stdlib.h>#include <stdio.h>#include <math.h>#include <cv.h>#include <highgui.h>int main(int argc, char *argv[]){ IplImage* img = 0; int height,原创 2010-09-27 18:23:00 · 9900 阅读 · 0 评论 -
文件的保存【OpenCV学习笔记4】
<br /> <br /> <br /> <br />/* 功能:图像格式的转换,学习文件的保存*/#include "stdafx.h"#include <cv.h>#include <highgui.h>#include <stdio.h>int main( int argc, char** argv ){ IplImage* src; // -1: the loaded image will be loaded as is (with number of cha原创 2010-09-27 18:28:00 · 4289 阅读 · 2 评论 -
生成混沌图像
function gl %生成混沌序列,并生成图像 clear; clc; % o=imread('image/lena.bmp'); %%%%%%%%%%%%读入混沌初始值 prompt={'混沌初始值 '}; mytitle='initial value'; lines=1; def={'98'}; mya=inputdlg(prompt,mytitle,lines,def,'on'); key11=['0.',mya{1}]; key=str2num(key11); %%%%原创 2010-12-16 12:57:00 · 2292 阅读 · 0 评论 -
应用混沌系统进行异或加密
function el %应用混沌序列与原始图像的异或对原始图像进行加密 clear; clc; %需要注意本程序实现对二进制文件的加密,对于非二进制文件不能采用此程序进行加密!!!! [filename pathname]=uigetfile('*.bmp;*.tiff;*.tif', '读入图像'); os=[pathname filename]; %os原始图像的路径 o=imread(os); % figure,imshow(o); %计算原始原创 2010-12-16 13:04:00 · 1919 阅读 · 0 评论 -
混沌对图像的置乱
<br /> <br />加密函数:<br /> <br />function myencryption%对图像进行加密,采用置乱的方式clear;clc;%key为加密密钥%os原始图像的路径[filename pathname]=uigetfile('*.bmp;*.tiff;*.tif', '读入需要加密的图像'); os=[pathname filename]; [filename pathname]=uiputfile({'*.bmp';'*.tiff';'*.ti原创 2010-12-16 13:06:00 · 2775 阅读 · 0 评论 -
数字水印视频教程(1)
http://player.youku.com/player.php/sid/XMjM5OTMwMDE2/v.swf原创 2011-01-27 17:44:00 · 2594 阅读 · 0 评论 -
OpenCV2.2在VC++2010 Express下的安装
2.2版本在以前的版本上有较大的进步,记得去年9月份安装时,费了好大劲,怎么都是不成功。当时,首先就要对OpenCV进行繁琐的配置,然后是在VC++2008里再次进行繁琐的配置,以至于我现在看了好久的OpenCV都不敢配置其VC++2010上,因为不想体验其魔鬼训练营般的洗礼。还原创 2011-07-10 20:53:11 · 4934 阅读 · 1 评论 -
混沌图像处理学习系统
菜单目录如下: 1 混沌基础1.1 序列演示1.2 初始值敏感演示1.3 混沌图像=======================2 水印应用示例2.1 混沌水印2.2 调制水印2.3 置乱水印2.4 确定位置=======================3 二进制图3.1 加密演原创 2011-09-01 11:28:09 · 1920 阅读 · 2 评论 -
OpenCV学习笔记-平滑处理
平滑处理使用的函数为cvSmooth,例题如下:#include "StdAfx.h"#include#include#includevoid main(){ IplImage* img_src=0; IplImage* img_dst=0; char* pic原创 2011-08-04 10:59:41 · 12447 阅读 · 3 评论 -
OpenCV学习笔记-漫水填充算法
满水填充算法需要使用的函数为:void cvFloodFill(IplImage* src,CvPoint seedPoint, //漫水法从点seedPoint开始实行算法CvScalar newVal, //像素点被染色的值CvScalar loDiff = cvSc原创 2011-08-04 21:37:17 · 7260 阅读 · 3 评论 -
OpenCV学习笔记-显示图像
代码如下:#include "stdafx.h"#include "highgui.h"int main(int argc, char** argv){ cvNamedWindow(argv[1],1); IplImage *img=cvLoadImage(argv[1原创 2011-08-03 17:06:45 · 1596 阅读 · 0 评论 -
OpenCV学习笔记-用鼠标在窗口中画矩形
程序如下:// drawBox.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "cv.h"#include "highgui.h"void my_mouse_callback( int event,int x原创 2011-08-03 17:39:37 · 5523 阅读 · 1 评论 -
OpenCV学习笔记-形态学操作-腐蚀膨胀-开闭运算
一个可以调节参数的形态学例题,代码如下:#include #include #include #include IplImage* src = 0;IplImage* dst = 0;IplConvKernel* element = 0;int element_sh原创 2011-08-04 11:33:40 · 15737 阅读 · 1 评论 -
OpenCV学习笔记-读取视频文件
读取视频文件,使用函数cvCreateFileCapture初始化CvCapture结构,采用cvQueryFrame读取视频帧.具体实现如下:#include "StdAfx.h"#include "stdio.h"#include #include #include原创 2011-08-04 09:45:03 · 2102 阅读 · 0 评论 -
OpenCV学习笔记-形态学
OpenCV提供了通用的形态学函数cvMorphologyEx,该函数能够实现开运算,闭运算,形态梯度,礼帽操作,黑帽操作,例题如下:#include "StdAfx.h"#include "cv.h" #include "highgui.h" #include "hi原创 2011-08-04 17:54:57 · 14118 阅读 · 1 评论 -
OpenCV学习笔记-尺寸调整
尺寸调整应用到的函数为:Resize图像大小变换void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );src输入图像.dst输出图像.interpolatio原创 2011-08-04 22:03:04 · 15450 阅读 · 3 评论 -
OpenCV学习笔记-图像金字塔
图像金字塔所用函数为:PyrDown图像的下采样void cvPyrDown( const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5 );src输入图像.dst输出图像, 宽度和高度应是输入图像的一半 ,传入原创 2011-08-04 22:57:49 · 12930 阅读 · 1 评论 -
OpenCV学习笔记-阈值化
需要的几个函数:Threshold對數組元素進行固定閾值操作void cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int thre原创 2011-08-05 09:09:07 · 8677 阅读 · 9 评论 -
OpenCV学习笔记-自适应阈值化
自适应阈值化的函数为:AdaptiveThreshold自适应阈值方法void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value, int a原创 2011-08-05 09:44:29 · 52021 阅读 · 9 评论 -
OpenCV学习笔记-应用trackbar实现按钮功能
在OpenCV中,没有显示提供按钮。经常采用的方法是用只有两个状态的滑动条来实现。例如,设置一个switch,有两个状态,分别为0和1.通过滚动条的回调函数实现调用。实现例题如下:#include "stdafx.h"#include "highgui.h"int g_swi原创 2011-08-03 22:17:57 · 4764 阅读 · 0 评论 -
OpenCV学习笔记-读取摄像头
使用cvCreateCameraCapture读入视频,然后使用cvQueryFrame进行读取帧.程序如下:#include "StdAfx.h"#include "stdio.h"#include #include #include int main(int arg原创 2011-08-04 09:38:35 · 4209 阅读 · 4 评论 -
OpenCV学习笔记-图像分割
图像分割,采用金字塔实现,该函数为,PyrSegmentation用金字塔实现图像分割void cvPyrSegmentation( IplImage* src, IplImage* dst, CvMemStorage* sto原创 2011-08-04 23:18:13 · 10607 阅读 · 6 评论 -
OpenCV学习笔记-卷积
使用函数为:Filter2D对图像做卷积void cvFilter2D( const CvArr* src, CvArr* dst, const CvMat* kernel, CvPoint anchor=cvP原创 2011-08-05 10:56:14 · 17148 阅读 · 2 评论 -
OpenCV学习笔记-卷积边界
卷积边界的函数为:CopyMakeBorder复制图像并且制作边界。void cvCopyMakeBorder( const CvArr* src, CvArr* dst, CvPoint offset, int bordertype原创 2011-08-05 11:18:03 · 5014 阅读 · 4 评论 -
OpenCV学习笔记-Sobel算子
该函数如下:Sobel使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像差分void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 );src输入图像.原创 2011-08-05 11:38:23 · 35948 阅读 · 5 评论 -
OpenCV学习笔记-Canny算子
Canny算子格式如下:Canny采用 Canny 算法做边缘检测void cvCanny( const CvArr* image, CvArr* edges, double threshold1, double threshold2, int ape原创 2011-08-05 17:44:16 · 21687 阅读 · 1 评论 -
OpenCV学习笔记-霍夫圆变换
霍夫圆变换的函数为:HoughCircles利用 Hough 变换在灰度图像中找圆CvSeq* cvHoughCircles( CvArr* image, void* circle_storage, int method, doubl原创 2011-08-05 22:51:27 · 15426 阅读 · 3 评论 -
OpenCV学习笔记-拉普拉斯变换
拉普拉斯变换的函数为:Laplace计算图像的 Laplacian 变换void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );src输入图像.dst输出图像.aperture_size核大小 (与原创 2011-08-05 17:18:59 · 10729 阅读 · 7 评论 -
OpenCV学习笔记-霍夫线变换1
霍夫线变换的函数为:HoughLines利用 Hough 变换在二值图像中找到直线CvSeq* cvHoughLines2( CvArr* image, void* line_storage, int method, double rh原创 2011-08-05 21:31:25 · 9308 阅读 · 0 评论 -
OpenCV学习笔记-霍夫线变换2
采用参数形式为:CV_HOUGH_PROBABILISTIC进行变化。具体实现代码为:#include "stdafx.h"#include #include #include int main(int argc, char** argv){ IplImage* sr原创 2011-08-05 21:40:08 · 3401 阅读 · 0 评论 -
混沌系统的两个收敛初始值
function chaoticDemo%混沌曲线演示%混沌系统具有初始值敏感性,初始值的微小变化最终会导致混沌系统严重偏离。%此程序用于演示混沌系统的两个函数形式的特殊形式% x(i+1)=4*x(i)*(1-x(i)) % 当x(0)=0.75% 当x(0)=0.25%上述两种情况,将产生收敛%程序设计:李立宗%2012年3月3日% http://blog.csdn.n原创 2012-03-03 16:33:34 · 2298 阅读 · 0 评论 -
不同形式混沌系统的曲线
function chaoticDemoThree%混沌曲线演示%混沌系统具有初始值敏感性,初始值的微小变化最终会导致混沌系统严重偏离。%此程序用于演示混沌系统的3个函数形式% x(i+1)=4*x(i)*(1-x(i)) 值的区间在[0,1]% x(i+1)=1-2*x(i)*x(i) 值的区间在[-1,1]%x(i+1)=cos(k*arccos(x(i))原创 2012-03-03 16:57:55 · 2392 阅读 · 0 评论 -
混沌循环移位加密图像
function chaoticDemoForPixarShift%使用混沌序列加密位图%生成一个混沌序列%根据该序列对要加密图像的像素值进行循环移位操作%模拟发现,该加密没有太大的实际意义,因为仅仅是在左右,上下循环移动,%无论移动多少次,都和移动两次,即左右上次各一次没有差别%考虑改进:%方案A:对每个像素值的二进制位进行循环移位%方案B:对整体的像素采用置乱移位%方案C:水原创 2012-03-04 10:50:05 · 2411 阅读 · 0 评论