图片处理前后对比

最近刚好看到一篇回答,用阈值二值化处理图片水印,受到启发写此代码。阈值二值化适合处理只有黑白两色的图片,考虑到文件盖章,这里作者使用像素颜色替换及灰度值处理图片,进一步提高处理精度和能力。

我们需要:Matlab软件,手机拍的文件图片

首先读入图片:

filename='TestPic.jpg';%图片名称,默认与代码在同一文件夹下

img=imread(filename);%读入图片

获取图片RGB值

R=img(:,:,1);

G=img(:,:,2);

B=img(:,:,3);

获取矩阵大小(以像素为单位):

[x,y,z]=size(img);

筛选图片颜色:

这里,RGB数值不唯一,可以根据具体图片重新调整,特别是识别红色的if语句,需要反复调参。这里作者事先在PS里查看了原图红色区域RGB数值。如果你不会PS,那……总有别的办法搞到RGB吧……实在不行咱一点点调嘛。

当判断出不是红色后,将该像素的灰度计算出来。这里,灰度是用来判断“白”和“黑”的工具,当灰度大于某一值,我们认为其应该为白色,将该像素完全修改为白色。而我们认为的“黑”色不予改动。

ps:这样做的好处之一是,只让白的地方更白,其他比较复杂的区域未作改变,图片不至于偏离事实。

for i=1:x

for j=1:y

if ((R(i,j)>=100)&&(R(i,j)<=255)&&(G(i,j)<110)&&(B(i,j)<110))%识别红色

R(i,j)=255;%重新赋值

G(i,j)=70;

B(i,j)=70;

else%其他区域

%Gray = R*0.299 + G*0.587 + B*0.114 灰度与RGB转换公式

gray=R(i,j)*0.299+G(i,j)*0.587+B(i,j)*0.114;

if gray>120 %如果灰度值大于该阈值,修改其为白色

R(i,j)=255;

G(i,j)=255;

B(i,j)=255;

end

end

end

end

颜色覆盖:

这里我们将之前转换好的RGB图层全部赋值给res变量,res变量即最终结果。

ps:当图片较大时,这里会耗费比较多的时间,属于正常现象

for i=1:x

disp(['颜色覆盖',num2str(i/x*100),'%']);%显示进度

for j=1:y

res(i,j,1) = R(i,j);

res(i,j,2) = G(i,j);

res(i,j,3) = B(i,j);

end

end

图片保存:

imwrite(res,'stripes2.png');%保存图片

至此,这32行代码已经能自动将你手机拍的图片转换为“扫描文件”了

需要注意的是,拍摄图片的时候最好在文件正上方,拍完有条件地话可以裁剪一下,这些手机自带的软件都可以搞定。

全部完整代码如下:

clc;

clear all;

filename='TestPic.jpg';%图片名称,默认与代码在同一文件夹下

img=imread(filename);%读入图片

R=img(:,:,1);

G=img(:,:,2);

B=img(:,:,3);

[x,y,z]=size(img);

for i=1:x

for j=1:y

if ((R(i,j)>=100)&&(R(i,j)<=255)&&(G(i,j)<110)&&(B(i,j)<110))%识别红色

R(i,j)=255;%重新赋值

G(i,j)=70;

B(i,j)=70;

else%其他区域

%Gray = R*0.299 + G*0.587 + B*0.114 灰度与RGB转换公式

gray=R(i,j)*0.299+G(i,j)*0.587+B(i,j)*0.114;

if gray>120 %如果灰度值大于该阈值,修改其为白色

R(i,j)=255;

G(i,j)=255;

B(i,j)=255;

end

end

end

end

disp('转换结束');

for i=1:x

disp(['颜色覆盖',num2str(i/x*100),'%']);%显示进度

for j=1:y

res(i,j,1) = R(i,j);

res(i,j,2) = G(i,j);

res(i,j,3) = B(i,j);

end

end

imwrite(res,'stripes2.png');%保存图片

disp('图片已保存');

end

Matlab 区域扫描,30+行Matlab代码实现文件扫描相关推荐

  1. 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快

    原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...

  2. 30行python代码设计_30行Python代码实现3D数据可视化

    原标题:30行Python代码实现3D数据可视化 作者:潮汐 来源:Python技术 欢迎来到 编程教室~ 我们之前的文章中有讲解过不少 Matplotlib 的用法,比如: 之前我们基本都是用它来绘 ...

  3. 王者荣耀——bat批处理文件,自动刷金币版(脱胎于30行Python代码刷金币版),Windows双击即可运行!

    参考<30行Python代码刷王者荣耀金币>:https://segmentfault.com/a/1190000012520431 1.源代码 以下是源代码部分,全部复制到文本文档, 用 ...

  4. 30行Python代码实现蚂蚁森林自动偷能量

    虽然我支付宝加了好多好友,平时有很多能量可以偷,但由于太懒,至今一棵树都没种成,所以心心念念把偷能量这事自动化.之前通过用代码模拟手机点按的方式,实现了 朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋 ...

  5. 30 行Python代码实现蚂蚁森林自动收能量(附送源码)

    公众号 "菜鸟学Python", 设为 "星标" 带你一起学Python 编辑:业余草 blog.csdn.net/article/details/113734 ...

  6. 30行Python代码实现蚂蚁森林自动偷能量(附源码)

    虽然我支付宝加了好多好友,平时有很多能量可以偷,但由于太懒,至今一棵树都没种成,所以心心念念把偷能量这事自动化.之前通过用代码模拟手机点按的方式,实现了 朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋 ...

  7. python30行代码_仅利用30行Python代码来展示X算法

    假如你对数独解法感兴趣,你可能听说过精确覆盖问题.给定全集 X 和 X 的子集的集合 Y ,存在一个 Y 的子集 Y*,使得 Y* 构成 X 的一种分割. 这儿有个Python写的例子. X = {1 ...

  8. 30 行 Javascript 代码搞定智能家居系统

    本文首发于『阿里云 IoT 开发者社区』,更多精彩物联网内容欢迎前往浏览. 智能家居可谓是今年物联网的热门领域,通过智能单品和智能音箱,人们已然把『智能』两个字变成了生活的理所应当.搭建云上之家除了买 ...

  9. python 车牌识别简单_简单30行Python代码让你玩转YOLO目标识别检测!

    YOLO是一种实时目标检测算法,与faster R-CNN不同的是,YOLO不是过多的注重物体定位的精度,而是着重于速度和物体种类的识别.在实际应用中,实时性是目标检测中非常重要的,例如对于一辆自动驾 ...

最新文章

  1. 2019年上半年收集到的中国人工智能发展详情文章
  2. pip安装mysql-python失败,并显示EnvironmentError:找不到mysql_config
  3. 【FI模块学习笔记】 固定资产概述(上)
  4. Matlab 基于svm的图像物体分类
  5. 1045: 愚人节的礼物
  6. 教你50招提升ASP.NET性能(十五):解决性能问题时不要低估UI的价值
  7. Code First :使用Entity. Framework编程(7) ----转发 收藏
  8. stm32l0的停止模式怎么唤醒_「正点原子STM32Mini板资料连载」第十九章 待机唤醒实验...
  9. 使用Maven Failsafe和TestNG分别运行单元测试和集成测试
  10. [渝粤教育] 莆田学院 电机与拖动基础(一) 参考 资料
  11. 162. Find Peak Element
  12. Ubuntu的奇技淫巧
  13. Bootstrap 折叠插件Collapse 事件
  14. 谷歌浏览器 转方向_转专业 | 希望你们能在岔路口选对自己的路
  15. 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求--转载
  16. java oracle thin_????java thin 连接oracle url的几种写法
  17. ip访问次数统计 nginx_nginx访问量统计
  18. 用微软makecert.exe生成一个自签名的证书
  19. 电销机器人源码+图文介绍
  20. 阿里云认证(ACA/ACP/ACE)的分类以及官网价格

热门文章

  1. paddle深度学习框架中的FFT
  2. 测试信标灯的随机特性
  3. 国赛无望,兄弟尽力了
  4. 2021年信号与系统作业统计处理
  5. 《李宏毅机器学习特训营》免费开放!直播教学!
  6. FootSwitch脚踏开关:三位USB静音脚踏板脚踏开关脚踏键盘鼠标
  7. mysql emma 使用教材_emma的使用
  8. c语言求n个数的最小值博客,C语言中的#define宏定义 求一组数的最大值和最小值(转)...
  9. 电大计算机基础知识试题是什么样的,计算机应用基础知识(电大试题)
  10. java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用