刘航宇 发布的文章 - 我的学记|刘航宇的博客
首页
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
搜 索
1
【NPN/PNP三极管】放大电路饱和失真和截止失真的区别
13,199 阅读
2
论文写作中如何把word里面所有数字和字母替换为新罗马字体
7,416 阅读
3
【高数】形心计算公式讲解大全
6,844 阅读
4
如何判断运放是工作在线性区还是非线性区
5,422 阅读
5
【1】基于STM32CubeMX-STM32GPIO端口开发
5,321 阅读
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
登录
搜 索
标签搜索
嵌入式
ASIC/FPGA
VLSI
SOC设计
机器学习
天线设计
C/C++
EDA&虚拟机
软件算法
小实验
信号处理
电子线路
通信&射频
随笔
笔试面试
硬件算法
Verilog
软件无线电
Python
DL/ML
刘航宇
嵌入式系统&数字IC爱好者博客
累计撰写
304
篇文章
累计收到
529
条评论
首页
栏目
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
页面
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
用户登录
登录
刘航宇(共304篇)
找到
304
篇与
刘航宇
相关的结果
2021-04-10
进程间有名管道通信,并可靠退出
使用管道通信实现两个进程的单机双向通信,并保证可靠退出。免get函数,利用kill结束所有进程办法,小刘原创:管道程序:1.随意命名比如 vim g.c复制下面程序,在Linux系统浏览器可以输入本站网址sciarm.com,可以直接复制,不用敲代码。2.然后 gcc g.c 3../a.out#include "stdio.h" int main() { int ret; ret = mkfifo("./first",0777); if(ret == -1) { printf("create first error\n"); return -1; } ret = mkfifo("./second",0777); if(ret == -1) { printf("create second error\n"); return -2; } return 0; }A端程序1.同理创建 vim A.c 复制下面程序2.gcc A.c -o A 3.然后 ./A#include "stdio.h" #include "fcntl.h" #include "string.h" int main() { int pid; int fd; int i; char buf[32] = ; pid = fork(); if(pid > 0) // write first { fd = open("./first",O_WRONLY,0777); if(fd == -1) { printf("open first error\n"); return -1; } while(1) { printf("please input send data\n"); scanf("%s",buf); write(fd,buf,strlen(buf)); if(buf[0] == 'q') { kill(pid,9); waitpid(pid,NULL,0); break; } for(i = 0 ;i < 32 ;i ++) { buf[i] = 0; } } close(fd); } if(pid == 0) // read second { fd = open("./second",O_RDONLY,0777); if(fd == -1) { printf("open error\n"); return -2; } while(1) { read(fd,buf,32) ; if(buf[0] == 'q') { kill(pid,9); waitpid(pid,NULL,0); break; } printf("recv from B %s\n",buf); for(i = 0 ;i < 32; i ++) { buf[i] = 0; } } close(fd); } return 0; }B端程序打开另一个TM命令窗口,也要root模式下1.同理创建 vim B.c 复制下面程序2.gcc B.c -o B 3.然后 ./B#include "stdio.h" #include "fcntl.h" #include "string.h" int main() { int pid; int fd; int i; char buf[32] = ; pid = fork(); if(pid > 0) // write first { fd = open("./first",O_RDONLY,0777); if(fd == -1) { printf("open first error\n"); return -1; } while(1) { read(fd,buf,32); if(buf[0] == 'q') { kill(pid,9); waitpid(pid,NULL,0); break; } printf("recv from A %s\n",buf); for(i = 0 ;i < 32 ;i ++) { buf[i] = 0; } } close(fd); } if(pid == 0) // read second { fd = open("./second",O_WRONLY,0777); if(fd == -1) { printf("open error\n"); return -2; } while(1) { printf("please input send data\n"); scanf("%s",buf); write(fd,buf,strlen(buf)) ; if(buf[0] == 'q') { kill(pid,9); waitpid(pid,NULL,0); break; } for(i = 0 ;i < 32; i ++) { buf[i] = 0; } } close(fd); } return 0; }打开第三个窗口进入超管模式输入: ps -axj 可以看到4个进程A端:随便输入一些字符,B就能接收到,输入q,两者4个进程可以全面杀掉 B端: 再次输入: ps -axj 全部杀掉进程图:
2021年04月10日
503 阅读
3 评论
12 点赞
2021-04-08
向量组的线性相关性及其判断
1.N维向量的定义(注:向量实际上就是特殊的矩阵——行矩阵和列矩阵;默认向量a为列向量)。2.向量的运算: 3.线性组合4.向量组的线性相关性(1)线性相关与线性无关的定义 设 ,若k1,k2,…,kn不全为0,称线性相关;若全为0,称线性无关。(2)判别方法:① r(α1,α 2,…,αn)<n,线性相关; r(α1,α 2,…,αn)=n,线性无关。②若有n个n维向量,可用行列式判别: n阶行列式||=0,线性相关(≠0无关)5.极大无关组与向量组的秩(1)定义:最大无关组所含向量个数称为向量组的秩(2)求法:设A=( a1,a2,…,an ),将A化为阶梯阵,则A的秩即为向量组的秩,而每行的第一个非零元所在列的向量就构成了极大无关组。(3)矩阵的秩等于它的行向量组的秩也等于它的列向量组的秩。
2021年04月08日
1,344 阅读
0 评论
5 点赞
2021-04-06
判断曲线渐近线
水平、垂直渐近线斜渐近线y=kx+b
2021年04月06日
603 阅读
0 评论
3 点赞
2021-04-04
间断点判断
1.找出无定义的点,就是间断点。2.用左右极限判断是第一类间断点还是第二类间断点,第一类间断点包括第一类可去间断点和第一类不可去间断点,如果该点左右极限都存在,则是第一类间断点,其中如果左右极限相等,则是第一类可去间断点,如果左右极限不相等,则是第一类不可去间断点,即第一类跳跃间断点。如果左右极限中有一个不存在,则第二类间断点。间断点可以分为无穷间断点和非无穷间断点,在非无穷间断点中,还分可去间断点和跳跃间断点。如果极限存在就是可去间断点,不存在就是跳跃间断点
2021年04月04日
752 阅读
0 评论
5 点赞
2021-04-04
范德蒙德行列式的定义及计算
范德蒙德行列式的定义及计算
2021年04月04日
342 阅读
0 评论
3 点赞
2021-04-04
博客中动态背景线条跟随鼠标移动,吸附鼠标效果代码
添加方法:将下方代码复制到网站想添加线条跟随鼠标移动效果的页面上方or下方或添加到网站底部模板文件 foot.htm 里面<!--代码放置于</body>上or下方--> <script> !function(){ function n(n,e,t){ return n.getAttribute(e)||t } function e(n){ return document.getElementsByTagName(n) } function t(){ var t=e("script"),o=t.length,i=t[o-1]; return{ l:o,z:n(i,"zIndex",-1),o:n(i,"opacity",.5),c:n(i,"color","0,0,0"),n:n(i,"count",99) } } function o(){ a=m.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth, c=m.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight } function i(){ r.clearRect(0,0,a,c); var n,e,t,o,m,l; s.forEach(function(i,x){ for(i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>a||i.x<0?-1:1,i.ya*=i.y>c||i.y<0?-1:1,r.fillRect(i.x-.5,i.y-.5,1,1),e=x+1;e<u.length;e++)n=u[e], null!==n.x&&null!==n.y&&(o=i.x-n.x,m=i.y-n.y, l=o*o+m*m,l<n.max&&(n===y&&l>=n.max/2&&(i.x-=.03*o,i.y-=.03*m), t=(n.max-l)/n.max,r.beginPath(),r.lineWidth=t/2,r.strokeStyle="rgba("+d.c+","+(t+.2)+")",r.moveTo(i.x,i.y),r.lineTo(n.x,n.y),r.stroke())) }), x(i) } var a,c,u,m=document.createElement("canvas"), d=t(),l="c_n"+d.l,r=m.getContext("2d"), x=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame|| function(n){ window.setTimeout(n,1e3/45) }, w=Math.random,y=;m.id=l,m.style.cssText="position:fixed;top:0;left:0;z-index:"+d.z+";opacity:"+d.o,e("body")[0].appendChild(m),o(),window.onresize=o, window.onmousemove=function(n){ n=n||window.event,y.x=n.clientX,y.y=n.clientY }, window.onmouseout=function(){ y.x=null,y.y=null }; for(var s=[],f=0;d.n>f;f++){ var h=w()*a,g=w()*c,v=2*w()-1,p=2*w()-1;s.push() } u=s.concat([y]), setTimeout(function(),100) }(); </script>
2021年04月04日
211 阅读
0 评论
3 点赞
2021-04-01
基于点处理的图像增强matlb实现线性变换和直方图均衡
引言图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。增强的首要目标是处理图像,使其比原始图像更适合于特定应用。图像增强的方法主要分为两类: 空间域增强法和频域增强法。“空间域”一词是指图像平面本身,这类方法是以对图像像素直接处理为基础的;“频率域”处理技术是以修改图像的傅氏变换为基础的。 增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。增强主要以图像的灰度直方图最为分析处理的基础。直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。基于点处理的图像增强方法有:灰度线性变换、灰度非线性变换、灰度分段线性变换和直方图均衡化,本文主要讨论灰度分段线性变换和直方图均衡化对图像的增强,并用MATLAB进行实验验证。图像增强的研究意义图像增强是数字图像处理的最基本的方法之一,它是为了改善视觉效果或便于人或机器对图像的分析理解,根据图像的特点或存在的问题,以及应用目的所采取的改善图像质量的方法或加强图像的某些特征的措施。图像在成像、采集、运输、复制等过程中不可避免地会造成某些降质。如在成像过程中由于光学系统会导致图像失真,不同的光照条件会使图像的曝光度差异很大,运动状态下成像会使图像模糊;而在传输过程中,各种噪声和干扰将污染图像。因此,通常需要对降质的图像进行预处理,以满足后期处理及分析的需要。图像复原是改善图像的一类方法,这类方法会尽可能还原图像的本来面目,追求提高图像的保真度。而图像增强则是一类追求图像可懂度的方法,通过处理有选择地突出某些感兴趣的信息,便于人或机器分析这些信息,抑制一些无用的信息,以提高图像的使用价值。图像增强处理后的图像比原始图像更适合于具体应用。由于成像和传输过程的差异性很大,决定了图像增强的方法只能有选择性地使用。实际应用时,需要根据所针对的处理图像、需要解决的问题以及最终要达到的效果等情况,合理选择合适的图像增强算法,并做适当的优化。图像增强处理后的图像比原始图像更适合于具体应用。由于成像和传输过程的差异性很大,决定了图像增强的方法只能有选择性地使用。实际应用时,需要根据所针对的处理图像、需要解决的问题以及最终要达到的效果等情况,合理选择合适的图像增强算法,并做适当的优化。实验目的1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。2、掌握灰度分段线性变换的图像增强方法。3、学会用直方图均衡化对图像进行增强。实验内容一、灰度分段线性变换1、理论基础:在某些情况下,为了将图像灰度级整个范围(AB) 或其中某一段扩展或压缩到另一灰度范围(z1,zk) 质内,称灰度的线性变换。分段线性变换和灰度的线性变换有点类似,都用到了灰度的线性变换。但不同之处在于分段线性变换不是完全的线性变换,而是分段进行线性变换。将图像灰度区间分成两段乃至多段,分别作线性变换称之为分段线性变换,如图,分段线性变换的优点是可以根据用户的需要,拉伸特征物体的灰度细节,相对抑制不感兴趣的灰度级。图中的(0,a),(a,b),(b,255)等变换区间边界能通过键盘随时做交换式输入,因此,分段线性变换是非常灵活的。它的灰度变换函数如图所示,函数表达式如下:式中,(a,c)和(b,d)是图中两个转折点坐标。该变换函数的运算结果是将原图在a和b之间的灰度拉伸到c和d之间。通过选择的拉伸某段灰度区间,能够更加灵活地控制图像灰度直方图的分布,以改善输出图像量。如果一幅图像灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率>1)物体灰度区间以改善图像质量;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。2、程序设计:clc; clear all; %刘航宇 X1=imread('图片路径'); subplot(2,2,1),imshow(X1);title('原图'); f0=0;g0=0;%折线点赋值 f1=20;g1=10; %参数自己改动,不要完全复制我的 f2=130;g2=180; f3=255;g3=255; subplot(2,2,2),plot([f0 f1 f2 f3],[g0 g1 g2 g3]); axis tight,xlabel('f'),ylabel('g'),title('灰度变换曲线'); r1=(g1-g0)/(f1-f0);%第一段折线的斜率 b1=g0-r1*f0;%计算截距1 r2=(g2-g1)/(f2-f1); b2=g1-r2*f1; r3=(g3-g2)/(f3-f2); b3=g2-r3*f2; [m,n]=size(X1); for i=1:m for j=1:n f=X1(i,j); if(f<f1) g(i,j)=r1*f+b1; elseif(f>=f1)&(f<=f2) g(i,j)=r1*f+b1; else(f>=f2)&(f<=f3) g(i,j)=r3*f+b3; end end end subplot(2,2,3),imshow(g);title('灰度变换后');3、运行结果:二、直方图均衡化1、理论基础:(1)直方图的定义在图像处理中提到的直方图是指灰度直方图。它定义为统计图像中具有某种灰度的像素数目(或频率=像素数目/图像总的像素个数)的函数。灰度直方图概括了图像中各灰度级的含量,提供了原图的灰度值分布情况[12],也可以说给出了1幅图所有灰度值的整体描述。什么是灰度直方图呢?灰度直方图(histogram)是灰度级的函数,它表示图像中具有每种灰度级的象素的个数,反映图像中每种灰度出现的频率[8]。设变量r代表图像中像素灰度级。在图像中,像素的灰度级可作归一化处理,这样,r的值将限定在下述范围之内: 0 ≤ r ≤ 1 在灰度级中,r=0代表黑,r=1代表白。对于一幅给定的图像来说,每一个像素取得[0,1]区间内的灰度级是随即的,也就是说r是一个随即变量。假定对每一瞬间它们是连续的随即变量,那么,就可以用概率密度函数pr(r)来表示原始图像的灰度分布。如果用直角坐标系的横轴代表灰度级r,用纵轴代表灰度级的概率密度函数pr(r),这样就可以针对一幅图像在这个坐标系中作一条曲线来。这条曲线在概率论中就是分布密度曲线(见图2.1)从图像灰度级的分布可以看出一幅图像的灰度分布特性。例如上图中的两个灰度密度分布函数中可以看出: (a)的大多数像素灰度值取在较暗的区域,所以这幅图像较暗,一般在摄影过程中暴光过强就会造成这种后果;而(b)图像的像素灰度值集中在亮区,因此,图像(b)的特性将偏亮,一般在摄影中暴光太脆弱将导致这种结果。当然,从两幅图像的分布来看图像的质量均不理想。为了有利于数字图像处理,必须引入离散形式。在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:(2)灰度直方图面积为A的连续图像f(x,y)经数字化后,成为M行N列的数字图象f(m,n)。一般而言,在数字图像f(m,n)中取不同灰度值的像素的数目是不同的。直方图是用于表达图像灰度分布情况的统计图表[4]。其横坐标是灰度值r,纵坐标是出现这个灰度值的概率密度p(r)(对连续图像f(x,y)而言),或者是出现这个灰度值的概率值p(ri)(对数字图像f(m,n)而言),参见图2.3。(3)直方图均衡化直方图均衡化是图象增强中点运算的一种最常用的直方图修正法[10]。其实质是减少图像的灰度等级以换取对比度的扩大。它把给定图像的直方图分布改造成均匀直方图分布,其本质是扩大了量化间隔,减少量化级别。因此,会出现这样的效果,原来灰度不同的象素经处理后可能变为相同,形成了一片相同灰度的区域;各区域之间有明显的边界,出现伪轮廓,图像的对比度增加。但是由于在均衡化过程中,原直方图上频数较少的灰度级被并入少数几个或一个灰度级,对应的图像部分将得不到增强。直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布[5]。对于图像的灰度变换,我们这里介绍一种稍微复杂一点的方法,既直方图均衡化。直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值,其灰度变换函数T()为:2.统计原始图像各灰度级的像素数目nk3.计算原始图像直方图各灰度级的频率数4.计算原始图像的累计直方图5.取整计算:Sk=int[(N-1)tk+k/N]6.确定映像关系:Sk-->tk7统计新直方图各个灰度级的像素Nk8.计算新的直方图:pt(tk)=nk/N 2、程序设计:clear all %预处理,彩图灰度化 PS=imread('图片位置');%读入彩色图像文件 imshow(PS) %显示出来 title('输入的彩色图像') %刘航宇 imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存 PS=rgb2gray(PS); %灰度化后的数据存入数组 %二、绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置 end figure,bar(0:255,GP,'g') %绘制直方图 title('原图像直方图') xlabel('灰度值') ylabel('出现概率') %三、直方图均衡化 S1=zeros(1,256); for i=1:256 for j=1:i S1(i)=GP(j)+S1(i); %算sk end end S2=round((S1*256)+0.5); %将Sk归到相近级的灰度 for i=1:256 GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率 end figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图 title('均衡化后的直方图') xlabel('灰度值') ylabel('出现概率') %四、图像均衡化 PA=PS; for i=0:255 PA(find(PS==i))=S2(i+1); %各个像素归一化赋给这个像素 end figure,imshow(PA) %显示均衡化后的图像 title('均衡化后图像') imwrite(PA,'PicEqual.bmp'); %图片格式自己改改,中文描述改改,不要光复制我的程序 3、运行结果:原图:4、结果分析:直方图均衡化是图像增强技术的基本方法,本文分析了这种处理方法的基本理论,并用Matlab 进行实验,结果表明,直方图均衡化在一定程度上改善了图像的对比度差和灰度动态范围,增强了图像的可读性,提高了地物的可分性,有利于进行遥感图像的目视解译。 该算法简单,是一种行之有效的图像增强算法。
2021年04月01日
675 阅读
1 评论
6 点赞
2021-03-30
常用级数展开式
常用级数展开式
2021年03月30日
171 阅读
0 评论
2 点赞
2021-03-28
∑(-1)^n/n^p和∑1/n^p收敛发散讨论
暂无简介
2021年03月28日
331 阅读
0 评论
2 点赞
2021-03-27
ds和dx,dy,cos(τ,y),cos(τ,x)的关系及其cos(n,x)=cos(t,y),cos(n,y)=-cos(t,x)证明
对向量求偏导,不妨对其求方向导数。 关系证明例题:
2021年03月27日
920 阅读
0 评论
6 点赞
2021-03-27
第二型曲面积分
第二型曲面积分
2021年03月27日
184 阅读
0 评论
1 点赞
2021-03-26
二重积分什么情况下为0?及形心计算公式
D区域关于y轴对称,且被积函数f关于x为奇函数,则二重积分为0;D区域关于x轴对称,且被积函数f关于y为奇函数,则二重积分为0;D区域关于中心对称,且被积函数f关于(xy)为奇函数,则二重积分为0;考研二重积分中的形心计算公式是∫∫D xdxdy=重心横坐标×D的面积,∫∫D ydxdy=重心纵坐标×D的面积。
2021年03月26日
1,809 阅读
0 评论
2 点赞
1
...
19
20
21
...
26