From 9983f3ce7d5644cc0d1aa1c706a0d61445a135c7 Mon Sep 17 00:00:00 2001 From: songer Date: Thu, 26 Jul 2018 15:43:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=BC=AB=E6=B0=B4=E5=A1=AB?= =?UTF-8?q?=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/acts/opencv/base/BaseMethodController.java | 156 +++++++++++++- .../com/acts/opencv/base/CardPlusController.java | 3 +- .../com/acts/opencv/common/mapper/BeanMapper.java | 1 + .../com/acts/opencv/common/mapper/JaxbMapper.java | 1 + .../com/acts/opencv/common/mapper/JsonMapper.java | 3 +- .../opencv/common/mapper/adapters/MapAdapter.java | 3 + .../common/mapper/adapters/MapConvertor.java | 5 +- .../com/acts/opencv/common/utils/Reflections.java | 19 +- src/main/webapp/index.jsp | 3 +- src/main/webapp/statics/sourceimage/floodfill.png | Bin 0 -> 54990 bytes src/main/webapp/statics/sourceimage/floodfill3.png | Bin 0 -> 9415 bytes src/main/webapp/statics/sourceimage/match3.jpg | Bin 0 -> 8074 bytes src/main/webapp/view/base/findtemplate.jsp | 4 +- src/main/webapp/view/base/floodfill.jsp | 227 +++++++++++++++++++++ 14 files changed, 408 insertions(+), 17 deletions(-) create mode 100644 src/main/webapp/statics/sourceimage/floodfill.png create mode 100644 src/main/webapp/statics/sourceimage/floodfill3.png create mode 100644 src/main/webapp/statics/sourceimage/match3.jpg create mode 100644 src/main/webapp/view/base/floodfill.jsp diff --git a/src/main/java/com/acts/opencv/base/BaseMethodController.java b/src/main/java/com/acts/opencv/base/BaseMethodController.java index 205091e..86f2234 100644 --- a/src/main/java/com/acts/opencv/base/BaseMethodController.java +++ b/src/main/java/com/acts/opencv/base/BaseMethodController.java @@ -349,6 +349,43 @@ public class BaseMethodController extends BaseController { } /** + * 漫水填充 + * @Author 王嵩 + * @param response + * @param imagefile + * @param ksize + * @param alpha + * @param beta + * @param gamma void + * @Date 2018年5月24日 + * 更新日志 + * 2018年5月24日 王嵩 首次创建 + * + */ + @RequestMapping(value = "floodfill") + public void floodfill(HttpServletResponse response, String imagefile, double graysize, double lodiff, + double updiff, int flag) { + System.loadLibrary(Core.NATIVE_LIBRARY_NAME); + logger.info("\n 锐化操作"); + + String sourcePath = Constants.PATH + imagefile; + logger.info("url==============" + sourcePath); + Mat source = Highgui.imread(sourcePath, Highgui.CV_LOAD_IMAGE_GRAYSCALE); + // Mat mask = new Mat(source.rows() + 2, source.cols() + 2, source.type()); + Mat mask = new Mat(); + Rect rect = new Rect(); + Imgproc.floodFill(source, mask, new Point(0, 0), new Scalar(graysize), rect, new Scalar(lodiff), new Scalar( + updiff), flag); + + try { + byte[] imgebyte = OpenCVUtil.covertMat2Byte1(source); + renderImage(response, imgebyte); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** * 图片缩放方法测试 * 创建者 Songer * 创建时间 2018年3月15日 @@ -733,7 +770,7 @@ public class BaseMethodController extends BaseController { logger.info("轮廓数量已经超出,默认显示所有轮廓,轮廓数量:{}", contours.size()); contourNum = -1; } - Imgproc.drawContours(destination, contours, contourNum, new Scalar(0, 255, 0), 2); + Imgproc.drawContours(destination, contours, contourNum, new Scalar(0, 255, 0), 1); try { byte[] imgebyte = OpenCVUtil.covertMat2Byte1(destination); renderImage(response, imgebyte); @@ -894,4 +931,121 @@ public class BaseMethodController extends BaseController { } } + + // public void qrCode(HttpServletResponse response, String imagefile, Integer binaryType, Double thresh, Double maxval) { + // System.loadLibrary(Core.NATIVE_LIBRARY_NAME); + // String sourcePath = Constants.PATH + imagefile; + // // 加载为灰度图显示 + // Mat imageGray = Highgui.imread(sourcePath, Highgui.CV_LOAD_IMAGE_GRAYSCALE); + // Mat image = new Mat(imageGray.rows(), imageGray.cols(), imageGray.type()); + // Mat imageGuussian = new Mat(imageGray.rows(), imageGray.cols(), imageGray.type()); + // Mat imageSobelX,imageSobelY,imageSobelOut; + // imageGray.copyTo(image); + // + // // imshow("Source Image",image); + // + // GaussianBlur(imageGray,imageGuussian,Size(3,3),0); + // Imgproc.GaussianBlur(imageGray, imageGuussian,new Size(5, 5), + // Integer.valueOf(sigmaX), Integer.valueOf(sigmaY)); + // + // //水平和垂直方向灰度图像的梯度和,使用Sobel算子 + // Mat imageX16S,imageY16S; + // Sobel(imageGuussian,imageX16S,CV_16S,1,0,3,1,0,4); + // Sobel(imageGuussian,imageY16S,CV_16S,0,1,3,1,0,4); + // convertScaleAbs(imageX16S,imageSobelX,1,0); + // convertScaleAbs(imageY16S,imageSobelY,1,0); + // imageSobelOut=imageSobelX+imageSobelY; + // imshow("XY方向梯度和",imageSobelOut); + // Mat srcImg =imageSobelOut; + // //宽高扩充,非必须,特定的宽高可以提高傅里叶运算效率 + // Mat padded; + // int opWidth = getOptimalDFTSize(srcImg.rows); + // int opHeight = getOptimalDFTSize(srcImg.cols); + // copyMakeBorder(srcImg, padded, 0, opWidth-srcImg.rows, 0, opHeight-srcImg.cols, BORDER_CONSTANT, Scalar::all(0)); + // Mat planes[] = {Mat_(padded), Mat::zeros(padded.size(), CV_32F)}; + // Mat comImg; + // //通道融合,融合成一个2通道的图像 + // merge(planes,2,comImg); + // dft(comImg, comImg); + // split(comImg, planes); + // magnitude(planes[0], planes[1], planes[0]); + // Mat magMat = planes[0]; + // magMat += Scalar::all(1); + // log(magMat, magMat); //对数变换,方便显示 + // magMat = magMat(Rect(0, 0, magMat.cols & -2, magMat.rows & -2)); + // //以下把傅里叶频谱图的四个角落移动到图像中心 + // int cx = magMat.cols/2; + // int cy = magMat.rows/2; + // Mat q0(magMat, Rect(0, 0, cx, cy)); + // Mat q1(magMat, Rect(0, cy, cx, cy)); + // Mat q2(magMat, Rect(cx, cy, cx, cy)); + // Mat q3(magMat, Rect(cx, 0, cx, cy)); + // Mat tmp; + // q0.copyTo(tmp); + // q2.copyTo(q0); + // tmp.copyTo(q2); + // q1.copyTo(tmp); + // q3.copyTo(q1); + // tmp.copyTo(q3); + // normalize(magMat, magMat, 0, 1, CV_MINMAX); + // Mat magImg(magMat.size(), CV_8UC1); + // magMat.convertTo(magImg,CV_8UC1,255,0); + // imshow("傅里叶频谱", magImg); + // //HoughLines查找傅里叶频谱的直线,该直线跟原图的一维码方向相互垂直 + // threshold(magImg,magImg,180,255,CV_THRESH_BINARY); + // imshow("二值化", magImg); + // vector lines; + // float pi180 = (float)CV_PI/180; + // Mat linImg(magImg.size(),CV_8UC3); + // HoughLines(magImg,lines,1,pi180,100,0,0); + // int numLines = lines.size(); + // float theta; + // for(int l=0; lget_type_name()<get_data()< images = new ArrayList<>(); + List images = new ArrayList(); images.add(img); MatOfInt channels = new MatOfInt(0); // 图像通道数,0表示只有一个通道 MatOfInt histSize = new MatOfInt(256); // CV_8U类型的图片范围是0~255,共有256个灰度级 diff --git a/src/main/java/com/acts/opencv/common/mapper/BeanMapper.java b/src/main/java/com/acts/opencv/common/mapper/BeanMapper.java index 71e2683..ee6a53c 100644 --- a/src/main/java/com/acts/opencv/common/mapper/BeanMapper.java +++ b/src/main/java/com/acts/opencv/common/mapper/BeanMapper.java @@ -12,6 +12,7 @@ import com.google.common.collect.Lists; * 2. 返回值类型转换. * 3. 批量转换Collection中的所有对象. * 4. 区分创建新的B对象与将对象A值复制到已存在的B对象两种函数. + * 创建者 张志朋 * 创建时间 2017年9月28日 */ public class BeanMapper { diff --git a/src/main/java/com/acts/opencv/common/mapper/JaxbMapper.java b/src/main/java/com/acts/opencv/common/mapper/JaxbMapper.java index 72e55a3..72792d6 100644 --- a/src/main/java/com/acts/opencv/common/mapper/JaxbMapper.java +++ b/src/main/java/com/acts/opencv/common/mapper/JaxbMapper.java @@ -25,6 +25,7 @@ import com.acts.opencv.common.utils.Reflections; * 使用Jaxb2.0实现XML<->Java Object的Mapper. * 在创建时需要设定所有需要序列化的Root对象的Class. * 特别支持Root对象是Collection的情形. + * 创建者 张志朋 * 创建时间 2017年9月28日 * */ diff --git a/src/main/java/com/acts/opencv/common/mapper/JsonMapper.java b/src/main/java/com/acts/opencv/common/mapper/JsonMapper.java index 1d0463d..24447ec 100644 --- a/src/main/java/com/acts/opencv/common/mapper/JsonMapper.java +++ b/src/main/java/com/acts/opencv/common/mapper/JsonMapper.java @@ -15,8 +15,8 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser.Feature; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonParser.Feature; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonSerializer; @@ -29,6 +29,7 @@ import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; /** * 简单封装Jackson,实现JSON String<->Java Object的Mapper. 封装不同的输出风格, * 使用不同的builder函数创建实例. + * 创建者 张志朋 * 创建时间 2017年9月28日 * */ diff --git a/src/main/java/com/acts/opencv/common/mapper/adapters/MapAdapter.java b/src/main/java/com/acts/opencv/common/mapper/adapters/MapAdapter.java index 4a79cb0..bc23be0 100644 --- a/src/main/java/com/acts/opencv/common/mapper/adapters/MapAdapter.java +++ b/src/main/java/com/acts/opencv/common/mapper/adapters/MapAdapter.java @@ -1,3 +1,6 @@ +/** + * Copyright © 2016-2020 公众学业 All rights reserved. + */ package com.acts.opencv.common.mapper.adapters; import java.util.HashMap; diff --git a/src/main/java/com/acts/opencv/common/mapper/adapters/MapConvertor.java b/src/main/java/com/acts/opencv/common/mapper/adapters/MapConvertor.java index 470611d..e867a73 100644 --- a/src/main/java/com/acts/opencv/common/mapper/adapters/MapConvertor.java +++ b/src/main/java/com/acts/opencv/common/mapper/adapters/MapConvertor.java @@ -1,3 +1,6 @@ +/** + * Copyright © 2016-2020 公众学业 All rights reserved. + */ package com.acts.opencv.common.mapper.adapters; import java.util.ArrayList; @@ -12,7 +15,7 @@ import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) public class MapConvertor { - private final List entries = new ArrayList(); + private List entries = new ArrayList(); public void addEntry(MapEntry entry) { entries.add(entry); diff --git a/src/main/java/com/acts/opencv/common/utils/Reflections.java b/src/main/java/com/acts/opencv/common/utils/Reflections.java index f7e015d..bba3a46 100644 --- a/src/main/java/com/acts/opencv/common/utils/Reflections.java +++ b/src/main/java/com/acts/opencv/common/utils/Reflections.java @@ -11,23 +11,22 @@ import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.Assert; - /** * 反射工具类. * 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数. - * 创建者 Songer + * 创建者 张志朋 * 创建时间 2016年8月1日 * */ @SuppressWarnings("rawtypes") public class Reflections { - + private static final String SETTER_PREFIX = "set"; private static final String GETTER_PREFIX = "get"; private static final String CGLIB_CLASS_SEPARATOR = "$$"; - + private static Logger logger = LoggerFactory.getLogger(Reflections.class); /** @@ -136,7 +135,7 @@ public class Reflections { /** * 循环向上转型, 获取对象的DeclaredField, 并强制设置为可访问. - * + * * 如向上转型到Object仍无法找到, 返回null. */ public static Field getAccessibleField(final Object obj, final String fieldName) { @@ -159,7 +158,7 @@ public class Reflections { * 循环向上转型, 获取对象的DeclaredMethod,并强制设置为可访问. * 如向上转型到Object仍无法找到, 返回null. * 匹配函数名+参数类型。 - * + * * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) */ public static Method getAccessibleMethod(final Object obj, final String methodName, @@ -184,7 +183,7 @@ public class Reflections { * 循环向上转型, 获取对象的DeclaredMethod,并强制设置为可访问. * 如向上转型到Object仍无法找到, 返回null. * 只匹配函数名。 - * + * * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) */ public static Method getAccessibleMethodByName(final Object obj, final String methodName) { @@ -240,7 +239,7 @@ public class Reflections { /** * 通过反射, 获得Class定义中声明的父类的泛型参数的类型. * 如无法找到, 返回Object.class. - * + * * 如public UserDao extends HibernateDao * * @param clazz clazz The class to introspect @@ -270,7 +269,7 @@ public class Reflections { return (Class) params[index]; } - + public static Class getUserClass(Object instance) { Assert.notNull(instance, "Instance must not be null"); Class clazz = instance.getClass(); @@ -283,7 +282,7 @@ public class Reflections { return clazz; } - + /** * 将反射时的checked exception转换为unchecked exception. */ diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 826f9e4..1242043 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -130,6 +130,7 @@ desired effect
  • zxing识别二维码
  • 模糊
  • 图像锐化
  • +
  • 漫水填充
  • 缩放
  • 腐蚀膨胀
  • 腐蚀膨胀进阶
  • @@ -156,7 +157,7 @@ desired effect
  • 页码识别
  • 图像矫正
  • - +
  • 校正真实测试
  • diff --git a/src/main/webapp/statics/sourceimage/floodfill.png b/src/main/webapp/statics/sourceimage/floodfill.png new file mode 100644 index 0000000000000000000000000000000000000000..4542bf2640bdeaa3484a234b00329f236a3290ed GIT binary patch literal 54990 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 p2m1Sr;c_Y}fFacX4o009C72oNA}LO^sl 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 z000005C8xG000000000000000060QPO$0gs00000*8l(j5C8xG0RR91000Yca%paK zPjz%~b#wp#00jU5002;PbW>t)Z)^bo0000?+5Z)^Yn000Yca%paKWpYkoZDmwNSX2N2009610000F zaB^vGbWn0{Z)Q_vbaik~VrpXm000GOA!s*?zJG22000003UG37Z)Q_vbaik500031 z0000&Y;L$*Z*OJ*000Saa&K>DLrqyr060QPO$0jt00002 zEdT%j5C8xG0RR91000tja%paKPjz%~b#zZ~bZKvHa{vGU7XSbN07GzeZenk5YybcN z002X5Vsc_{Z)^Yn0000|XLC(rZ*Ob>00000Lvn6IVsCG30000007GtcLt<}lYybcN z002y4Y;$67Z)^Yn0000^XLNRAZ*Ob>00000MQv@fBT{U1 z000000000000000LTqFpRc>@fBT{U1000000000000000Qgdu{Rc>@fBT#s3Kv)38 zfB*mh0000Ac4cF9Z*oLobYWs|Z)^bo0000`XHauxZgp({0000`XHath0000`XHY`` z0000?WoC3$ZgfT?Qfzbp00000000000000~Z*U-0ZgfT?Qfzbp00000000000000} zV{9N*ZgfT?P;z5HSpWb400000000nUa&K@~Xk~6ta%paKX>Mm?Z*Ob>0000EV{&hB zQe|UwLT_|*Z*6REZf5`h0000001RVtZ*Wp&V{}YqW^`n?EnA(000mG zU;`2W0RRF3U;`2W0RRFxLP<>oCIA2c000gE000000000006%~L060QPO#}@900000 z1ONa4S~x;UO#~SL000001ONa49ymftO#|})000002><{9000000096vLP000000RS=p00031S^xk51^@s600031H2?qr0RSxk000I6000000XRZQO#}D< z00000Z~y@R|NsC0|NsC0|NsC0|NsC0|NsC0{{!d%00030|NsC0|NsC0|NsC0|NsC0 z|NsC0{{!d%00030|NsC0|NsC0|NsC0|NsC0|NsC0{{!d%00030|NsC0|NsC0|NsC0 z|NsC0|NsC0{{!d%060QPO#}b{000000ssLxLP<>o0ssI2000C40000uLP<>oFaQ7m z000630XRZQO$03f000001^@v70006wLP<>o2mk;8000mG0003100KY&00KY&0000u zLP<>o9smFU000C40000uLP<>o8UO$Q00Tb&000I60000000000000&M000&M000GN zDrg6om;fyRF#rGn0RR91000000000000000000000RR910000000000761SM761SM z000000000000000009610000000000000000000001yBG0096100000Zgp&I00002 z00006VsCYBWOGkqYGVKZ0096100000Qe$*60000400000RBvz~Y;SI70000000000 zOl4+tY;SI70000000000LUeC!Y;SI70000M00000QfFv%Y;SI70000M00006b8Km2 zWph?+OmhGL00B>8YGVKZ0096100005b8Km2WdHyG5&!@I2Xky`V`WK1Y;SI700000 z00007XL4_Ka7jdLZ*FG*00000000JWa%pF2Ze?zDZ2$lO3`J9HX=7zia%pF2ZU6uP z4PkY3Z%1WrWpZJ3Wn=&V002~ZaAjp~b!`9u018D@Y-wXVyXKnxh00(4cW?^+~bN~PV z33g?2bU|!sXKrO~b!`9u01rh|Y-wXA^b#!xO zbZl>KX8-^I000003T$O&bWe43b7gdFZ*FG*00000000bPZ*+8TZBKP{b7gdFZ*FG* z00000000YeX=iA3Pjz&2Wpr$BZf5`h0000uLP<>oC;$Ke000aC0006%@Bjb+0000u zLP<>o5dZ)H00032060QPO#~DG000001ONa40ysiRO#}=800002G5`Po0RR915C8xG z5C8xGFaQ7p00002762Fk0sq+l?EnlxWN%_+Uqej*0{`v+4nbsZVr2kifB*mh0sq?o zga8Z(2nY!X3<(Jg5eo_n5fu*%3=b6;6B88^6BrQ;3=9km3=s?r3=9km3=9km3=9km z3=9km3=9km3=9km3=9Dc3kwYn4G<0v5EKp$4ipp)4h{|!5ey6r3=9zw3=9km3=9zr z3=9km3=9km3=9km3=9km3=9km3=9km3=9nazyJ{l01yBW0|6oc0uccN5dr_*00aO5 z|HJ`5000360RaI40RaF20000000RI40t5vH2M7rY3jqKD1pxs80RaI30000000031 z0s{mE1_uZU3JVYb0R#a90t5mD2L=cQ0}L|(00I#M1R)YJ1wm0^6C!beG6ocpp|L_E zBo$J@Vly;yg3&_gC<0iRAfcMqjWYG(pBPR^0S1)({s6!l%$2UmBiHK^rf}M)#de8W_E^_rnbh`=JqEy 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 zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(-KX`CqV{2t}AZ2c3JtB7^KR*BN01iQ9Z(?NtWIzA_00IBo z0E7Sm0RaI40RaI40RaI40RaI40RaI40RaI40RaI40RaI40RaI40RaI40RaL60s;a8 z0s;a80s{jB0|NsC0|NsA0RaI40RaI40RaL60RjR80|NsC0|NsC0|NsC0|NsC0|NsC z0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC|G)qd2mlrU76Snh00I#K0}%oL-2emt z1OLPUq5uE@1_A>C0000000000000LF1_cBO0}28G01E*C00sjA0RaF20000000006 z1q1^J0tf*K0168b00IF61OWpB0s{jB0tN|n0RjUA5d{(kAqNv800=P@K{6v12~k28 zVI(sbQgMM8Vv!|7p|S8LG;#_V!O=A*;Zrt(@sgrMRC7f}H%DVARaRFTvcl5h@??W_ zlZ0iXv%}NlDL7{Hbt*YJNJ&aqSz2dkX=-+NczJq-hKGoWijmzbHFq@|{(sHv*7 zwYImoxw^!~#>dFX%GA}?*Vx(GOMZRyTx&qqD=)S7tbN zhL)zb#@6QcXLpB}r?`v2Mh36Q_rG=S YzyHzs{{Z{ +<%@include file="/module/include/common.jsp"%> + + + + + + + + + +
    + +
    + +
    +
    +

    参考资料:
    + Opencv官方文档:addweighted
    +
    锐化:dst (I)= saturate ( src1(I)* lodiff + src2(I)* updiff + flag ) + public static void addWeighted(Mat src1, double lodiff, Mat src2, double updiff, double flag, Mat dst); 各参数说明:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #参数说明
    1.Mat src1图层1对应的Mat对象
    2.double lodiff图层1的透明度权重
    3.Mat src2图层2对应的Mat对象
    4.double updiff图层2的透明度权重
    5.double flag一个加到权重总和上的标量值,越大合并图像越明亮
    6.Mat dst目标图像mat
    + + +
    +
    +
    +
    + + +

      漫水填充测试

    +
    + + + + + + + + + + + + + + + +
    灰度值lodiffupdiffflag操作
    + + + + + + + + 漫水填充 + 重置
    + + + + +
    +
    +
    +
    +

    原图

    + +
    +
    +

    未识别前的原文件。

    + 原图 +
    +
    +
    +
    +
    +
    +

    识别后的图片

    + +
    +
    +

    点击识别按钮后,将显示识别后的文件。

    + 识别后的图 + +
    +
    +
    +
    + + + + +