实用的 Matlab
2024-08-31 19:59:39
- activecontour:前景背景分离,Segment image into foreground and background using active contour
- 该函数返回的是一副 binary image,二值图像;
1. Texture Segmentation
2. 删除图像中的网格(removing grids in an image)
Removing grids in an image - MATLAB Answers - MATLAB Central
- (1)通过阈值化的处理,识别亮的部分(也即网格的部分),
- (2)对图像进行中值滤波,
- (3)步骤 1 获得的网格的部分,由步骤(2)的结果所取代;
clear, clc
I = imread('./grid.png');
grid = I > 125;
filtered = medfilt2(I, [80, 80]);
% 当然也不一定非得是中值滤波,也可以采用其他插值形式
I(grid) = filtered(grid);
imshow(I)
3. 运动图像去模糊
- 使用维纳滤波;
function deblurred(im, a, b, NSPR)
i = imread(im);
f = im2double(i);
PSF = fspecial('motion', a, b);
% point spread function (PSF)
frest1 = deconvwnr(f, PSF, NSPR);
% NSR is the noise-to-signal power ratio of the additive noise.
% NSR can be a scalar or a spectral-domain array of the same size as I.
subplot(221),imshow(f); title('原图像');
subplot(222),imshow(frest1); title('维纳滤波处理后图像');
end
- PSF = fspecial(‘motion’,len,ang); %建立扩散子,其中len是模糊长度,ang是模糊角度;
- img2=deconvlucy(img,PSF,n); %用lucy-richardson方法复原图像,其中img是运动模糊图像,PSF是扩散子,n是迭代次数,img2是复原图像
一般模糊图像的模糊距离和模糊角度不好判断,但也可以通过查看图像的频谱图和实部二维图来大致估:
% 求角度
img_fft=fftshift(fft2(img_gray));
N=abs(img_fft);
P=(N-min(min(N)))/(max(max(N))-min(min(N)))*225;
figure;imshow(P);
% 求长度
h=fspecial('sobel');
img_double=double(img_gray);
J=conv2(img_double,h,'same');
IP=abs(fft2(J));
S=fftshift(real(ifft2(IP)));
figure;plot(S);
最新文章
- setTimeout那些事儿
- BFS/DFS算法介绍与实现(转)
- EntityFramework 7 更名为EntityFramework Core(预发布状态)
- webpack入坑之旅(三)webpack.config入门
- Android学习笔记-Dialog详解
- CURL 和LIBCURL C++代码 上传本地文件,好不容易碰到了这种折腾我几天的代码
- VMware GSX Server 3.2.1 Build 19281免费下载
- 关于pydev的语法的错误提示
- python+selenium自动化软件测试(第1章):环境搭建,你也可以直接用Anaconda!
- 用 k8s 管理机密信息 - 每天5分钟玩转 Docker 容器技术(155)
- 机器学习周志华 pdf统计学习人工智能资料下载
- C++二分查找算法演示源码
- Vue+min-width实现最大两栏布局
- List转数组
- Android Tab类型主界面 Fragment+TabPageIndicator+ViewPager
- JavaScript运算符与类型
- auto类型说明符的注意事项
- 《Python黑帽子:黑客与渗透测试编程之道》 扩展Burp代理
- HTML5之新增的属性和废除的属性 (声明:内容节选自《HTML 5从入门到精通》)
- Dictionary<;string, object>;不区分大小写