【图像处理】小波编码图像中伪影和纹理的检测(Matlab代码实现)

news2025/7/15 15:26:10

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文章讲解


💥1 概述

文献来源:

 

本文描述了一种小波编码图像的分割和分析算法

该算法构成了图像后处理方案的一部分,该方案可以成功地恢复遭受模糊伪影的压缩图像中的纹理。该算法包括提取纹理、强度(或颜色)和空间特征。kmeans算法的变体被用于有效地分割大图像。分析阶段使用基于规则的启发式方法将片段分类为可用于恢复它们的潜在伪影或相邻纹理。这种新颖的图像后处理方法需要最少的用户交互,并且可以成功地利用压缩图像中的纹理级别相关性。

📚2 运行结果

部分代码:

clear all; clc; clf; warning off; close all hidden;
totalt = 0; % Total time spent on segmentation.

% PRE-PROCESS the image to produce a feature set.
%   1. Texture processing using DOOG filters
%   2. Principle component analysis to reduce dimensionality
%   3. Random sampling of image

img = im2double(imread('4.bmp')); % Read gray image
%img = im2double(imread('girl.bmp')); % Read color image


disp('Preprocessing...');tic;
% Preprocess all
[allfeatures, rDims, cDims, depth] = preprocfast(img);
[samples,olddimensions] = size(allfeatures);
gallfeatures = allfeatures;

% Combine all texture features to use for later thresholding
% Also save all low pass features for later adjacency processing
if depth == 1
    texturefeature = max(allfeatures(:,4:11), [], 2);
    lowpassfeature = allfeatures(:,3);
    lowpassimage = reshape(lowpassfeature, [cDims rDims])';
else
    texturefeature = max(allfeatures(:,6:13), [], 2);
    lowpassfeature = allfeatures(:,3:5);
    lowpassimage(:,:,1) = reshape(lowpassfeature(:,1), [cDims rDims])';
    lowpassimage(:,:,2) = reshape(lowpassfeature(:,2), [cDims rDims])';
    lowpassimage(:,:,3) = reshape(lowpassfeature(:,3), [cDims rDims])';
end
textures = reshape(texturefeature, [cDims rDims])';

% Principle component based dimensionality reduction of all features
allfeatures = pca(allfeatures, 0.05); 

% Choose 10% of samples randomly and save in DATASET
[samples, dimensions] = size(allfeatures);
% We work on ~WORKSAMPLES pixels. If the image has less we use all pixels. 
% If not then the appropriate portion of pixels is randomly selected.
worksamples = samples/10;
if worksamples < 10000
    worksamples = 10000;
end
if samples < worksamples
    worksamples = samples;
end
choose = rand([samples 1]); choose = choose < (worksamples/samples); 
dataset = zeros([sum(choose), dimensions]);
dataset(1:sum(choose),:) = allfeatures(find(choose),:); % find(choose) returns array where choose is non zero

disp('Preprocessing done.');t = toc; totalt = totalt + t;
disp(['     Original dimensions: ' int2str(olddimensions)]);
disp(['     Reduced dimensions by PCA: ' int2str(dimensions)]);
disp(['     Image has ' int2str(rDims * cDims) ' pixels.']);
disp(['     Using only ' int2str(size(dataset,1)) ' pixels.']);
disp(['Elapsed time: ' num2str(t)]);
disp(' ');

% SEGMENTATION
%   1. k-means (on sampled image)
%   2. Use centroids to classify remaining points
%   3. Classify spatially disconnected regions as separate regions

% Segmentation Step 1. 
%   k-means (on sampled image)
% Compute k-means on randomly sampled points
disp('Computing k-means...');tic;
% Set number of clusters heuristically.
k = round((rDims*cDims)/(100*100)); k = max(k,8); k = min(k,16);

% Uncomment this line when MATLAB k-means unavailable
%[centroids,esq,map] = kmeanlbg(dataset,k);
[map, centroids] = kmeans(dataset, k);  % Calculate k-means (use MATLAB k-mean
disp('k-means done.');t = toc; totalt = totalt + t;

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一年一度的科技狂欢盛会——2022亚马逊云科技re:Invent全球大会

一年一度的科技狂欢盛会&#xff0c;2022年亚马逊云科技re:Invent全球大会即将于北京时间2022年11月29日盛大开启&#xff01;届时全球各领域关注“云计算圈”发展的人都将齐聚一堂&#xff0c;共同聆听5大重磅嘉宾的主题演讲&#xff0c;700前沿技术话题…… 携全球合作伙伴&…

《计算机工程》投稿经验分享

历经两个月终于录用了 投稿过程真的太心酸了 第一次投计算机工程与应用&#xff1a;历时两周&#xff0c;拒稿 第二次投计算机科学&#xff1a;加急15天&#xff0c;增刊录用&#xff0c;撤稿 第三次投计算机应用与软件&#xff1a;说文件太大&#xff0c;修改文件大小重投&…

选择合作伙伴是最大关键:网宿科技的云业务拓展之路

关注IT圈子的小伙伴们&#xff0c;对网宿科技这个名字想必都是耳熟能详。在众多发力云计算业务的科技企业当中&#xff0c;近年来业绩表现出众的网宿科技&#xff0c;无疑是相当引人瞩目的一家。那么问题就来了&#xff1a;网宿科技当初是怎样走上了这条云业务拓展之路&#xf…

【知识网络分析】二模网络(two node)、多模网络(multi node)与多级别网络(multi level)

二模网络(two node)、多模网络(multi node)与多级别网络(multi level) 1 二模网络(two node)1.1 读取本地文献并构建二模网络数据集1.2 网络数据集精简1.3 网络图绘制及美化2 多模网络(multi node)3 多级别网络(multi level)1 二模网络(two node) 1.1 读取本地文…

web期末网站设计大作业 奶茶店网站美食餐饮网站设计与实现(HTML+CSS+JavaScript)

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【网页设计】HTML做一个属于我的音乐页面(纯html代码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

JAVA学习笔记- - - day 2

&#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望能和大家一起进步成长&#x1f495; 目录 &#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望…

15.变量的存储类别

变量的存储类别 内存的分区 1.内存&#xff1a;物理内存&#xff0c;虚拟内存。 虚拟内存&#xff1a;操作系统虚拟出来的的内存。 操作系统会再物理内存和虚拟内存之间做映射。 在32位系统下&#xff0c;每个进程的寻址范围是4G&#xff1a;0x00 00 00 00 ~ 0xff ff ff ff …

XSStrike工具使用说明

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是XSStrike工具使用说明。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未授权…

详解设计模式:工厂方法模式

工厂方法模式&#xff0c;又称工厂模式、多态工厂模式和虚拟构造器模式&#xff0c;通过工厂父类定义负责创建产品的公共接口&#xff0c;子类负责生产具体对象。可以理解为简单工程模式的升级&#xff0c;解决简单工厂模式的弊端。 &#xff5e; 本篇内容包括&#xff1a;关于…

CANdelaStudio-从入门到深入到实践目录

前文介绍诊断协议那些事儿专栏&#xff0c;为大家深入介绍了ISO 14229各个服务的基础知识、请求与响应的报文格式&#xff0c;详情可查看&#xff1a;诊断协议那些事儿&#xff0c;从本专题开始&#xff0c;将由浅入深的展开诊断实际开发与测试的数据库编辑&#xff0c;包含大量…

强化学习调度环境:析取图和离散事件仿真

获取更多资讯&#xff0c;赶快关注上面的公众号吧&#xff01; 文章目录何为析取图和离散事件仿真模型析取图模型离散事件仿真模型强化学习环境调度环境基于析取图的调度环境基于离散事件仿真的调度环境总结近日有小伙伴在复现强化学习求解作业车间调度的文章代码问题时遇到一些…

Python01(安装环境以及开发工具PyCharm)

目录 一、环境下载&安装 二、开发工具下载&安装 一、环境下载&安装 1、Python环境安装包下载 官方网址&#xff1a;https://www.python.org/downloads/windows/ 选择一个安装包进行下载&#xff0c;建议不要下载最新的。 2、环境安装 双击下载好的环境安装包进…

Rational rose 2007 下载和安装教程

文章目录Rational rose 简介一&#xff0c;下载Rational rose 2007二&#xff0c;安装Rational rose 2007三&#xff0c;激活Rational Rose 2007四&#xff0c;启动Rational Rose 2007Rational rose 简介 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化…

云原生系列 【基于CCE Kubernetes编排实战】

✅作者简介&#xff1a; CSDN内容合伙人&#xff0c;全栈领域新星创作者&#xff0c;阿里云专家博主&#xff0c;华为云享专家博主&#xff0c;掘金后端评审团成员 &#x1f495;前言&#xff1a; 最近云原生领域热火朝天&#xff0c;那么云原生是什么&#xff1f;何为云原生&a…

基于交流潮流的电力系统多元件N-k故障模型研究(Matlab代码实现)【电力系统故障】

&#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;⛳️⛳️⛳️ ​ 目录 1 概述 2 考虑多元件故障的交流潮流重要性度量&#xff08;N-k&#xff09; 3 考虑多元素故障的元素重要性度量 3 数学模型 1 概述 现代社会依赖于关键的基础设施系统&#xff0c;如电力…

【数据结构初阶】C语言从0到1实现希尔排序

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【数据结构初阶】 ✒️✒️本篇内容&#xff1a;深入剖析希尔排序 &#x1f6a2;&#x1f6a2;作者简介&#xff1a;计算机海洋的新进船长一枚&#xff0c;…

SpringBoot中的AOP使用

文章目录SpringBoot中的AOP使用1.AOP介绍2. AOP 编程术语2.1切面&#xff08;Aspect&#xff09;2.2连接点&#xff08;JoinPoint&#xff09;2.3切入点&#xff08;Pointcut&#xff09;2.4目标对象&#xff08;Target&#xff09;2.5通知&#xff08;Advice&#xff09;3.切入…

【经济调度】基于蝙蝠算法实现电力系统经济调度附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【Qt按钮基类】QAbstractButton[ 所有按钮基类 ]

【Qt按钮基类】QAbstractButton[ 所有按钮基类 ]Qt开启-》按钮基类 QAbstractButton一、setText (设置文本)二、text&#xff08;获取文本&#xff09;三、setIcon&#xff08;设置图标&#xff09;四、icon&#xff08;获取图标&#xff09;五、 iconSize &#xff08;获取图标…