沈阳网站企业,大学信息化建设 网站群,汕尾做网站,设计公司网站建设方案最近刚好看到一篇回答#xff0c;用阈值二值化处理图片水印#xff0c;受到启发写此代码。阈值二值化适合处理只有黑白两色的图片#xff0c;考虑到文件盖章#xff0c;这里作者使用像素颜色替换及灰度值处理图片#xff0c;进一步提高处理精度和能力。我们需要#xff1…最近刚好看到一篇回答用阈值二值化处理图片水印受到启发写此代码。阈值二值化适合处理只有黑白两色的图片考虑到文件盖章这里作者使用像素颜色替换及灰度值处理图片进一步提高处理精度和能力。我们需要Matlab软件手机拍的文件图片2019.2.22修改根据评论区建议删除循环将代码全部矩阵化首先读入图片filenameTestPic.jpg;%图片名称默认与代码在同一文件夹下
imgimread(filename);%读入图片获取图片RGB值Rimg(:,:,1);
Gimg(:,:,2);
Bimg(:,:,3);筛选图片红色red(R100).*(R255).*(G110).*(B110);%判断是否为红色并得到红色区域布尔矩阵
%这里的.*为矩阵元素各自相乘直接使用*为矩阵乘法
%这里偷了个懒乘法在这里的作用是矩阵相与%修改红色区域颜色
R(red1)255;
G(red1)70;
B(red1)70;这里RGB数值不固定可以根据具体图片重新调整。这里作者事先在PS里查看了原图红色区域RGB数值。如果你不会PS那……总有别的办法搞到RGB吧……实在不行咱一点点调嘛。在PS中查看像素RGB值筛选图片白色将所有像素的灰度值计算出来。这里灰度是用来判断“白”和“黑”的工具当灰度大于某一值我们认为其应该为白色将该像素完全修改为白色。其余颜色不予改动。grayR.*0.299G.*0.587B.*0.114;%灰度值计算得到灰度值矩阵
white(gray120)-red;%将灰度中的红色区域剔除得到白色矩阵%将白色区域完全变白
R(white1)255;
G(white1)255;
B(white1)255;ps这样做的好处之一是只让白的地方更白其他比较复杂的区域未作改变图片不至于偏离事实。颜色覆盖这里我们将之前转换好的RGB图层全部赋值给res变量res变量即最终结果。res(:,:,1)R(:,:);
res(:,:,2)G(:,:);
res(:,:,3)B(:,:);图片保存imwrite(res,stripes2.png);%保存图片至此这20行代码已经能自动将你手机拍的图片转换为“扫描文件”了需要注意的是拍摄图片的时候最好在文件正上方拍完有条件地话可以裁剪一下这些手机自带的软件都可以搞定。全部完整代码如下clc;
clear all;
filenameTestPic.jpg;%图片名称默认与代码在同一文件夹下
imgimread(filename);%读入图片
%获取RGB图层
Rimg(:,:,1);
Gimg(:,:,2);
Bimg(:,:,3);red(R100).*(R255).*(G110).*(B110);%判断是否为红色并得到红色区域布尔矩阵
%这里的.*为矩阵元素各自相乘直接使用*为矩阵乘法
%这里偷了个懒乘法在这里的作用是矩阵相与%修改红色区域颜色
R(red1)255;
G(red1)70;
B(red1)70;grayR.*0.299G.*0.587B.*0.114;%灰度值计算得到灰度值矩阵
white(gray120)-red;%将灰度中的红色区域剔除得到白色矩阵%将白色区域完全变白
R(white1)255;
G(white1)255;
B(white1)255;disp(转换结束);res(:,:,1)R(:,:);
res(:,:,2)G(:,:);
res(:,:,3)B(:,:);imwrite(res,stripes2.png);%保存图片
disp(图片已保存);原图是我在网上随便找的一张作者使用的软件是Matlab R2016a文件处理效果如下