Atitit 图像处理 公共模块 矩阵扫描器
Atitit 图像处理 公共模块 矩阵扫描器
1.1. 调用说明对矩阵像素遍历处理调用
List<Optional<Color>> li = mtrx.li_clr;
for(int i=0;i<li.size();i++)
{
int clrPointIdx=i;
Optional<Color> clr =li.get(i);
clr.ifPresent((p) -> {
//Integer color = clr.get();
int gray = ColorUtil.gray(p);
assignToBukeByGray(gray, p,clrPointIdx);
});
}
2. 矩阵扫描器主题结构
2.1. 主要说明 从像素点开始填充矩阵
public void fill_and_setMtrx_leftTop_XY_AllMode(int x, int y) {
this.leftTop_point=new Point(x, y);
colorLi_clrIntMod = Lists.newArrayList();
colorLi_grbInt_noOP = Lists.newArrayList();
li_clr = Lists.newArrayList();
li_hsv = Lists.newArrayList();
li_pts= Lists.newArrayList();
this.startPos_left_x = x;
this.start_top_y = y;
for (int i = x; i < w + x; i++)
for (int j = y; j < h + y; j++) {
Point pt=new Point(i,j);
try {
int rgb = img.getRGB(i, j);
Color c=new Color(rgb);
HSV h=ColorUtil.rgb2hsv(c);
h.x=x;h.y=y;
li_hsv.add(Optional.of(h));
li_clr.add(Optional.of(c));
//chMap.put(c, h);
} catch (ArrayIndexOutOfBoundsException e) {
li_clr.add(Optional.empty());
li_hsv.add(Optional.empty());
}
li_pts.add(pt);
}
}
2.2. 得到模板中心点所对应的图像坐标
public Point getCenterPoint() {
int x = this.startPos_left_x + w - 2;
int y = this.start_top_y + h - 2;
return new Point(x, y);
}
2.3. 主题源码
/**
*
*/
package com.attilax.img;
import java.awt.Color;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import com.attilax.ex.CantFindForgeColorEx;
import com.attilax.img.other.ColorUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
/**
* @author attilax 2016年11月8日 下午6:15:13
*/
public class Matrix {
public int w;
public int h;
BufferedImage img;
List<Integer> colorLi_grbInt_noOP = Lists.newArrayList();
List<Optional<Integer>> colorLi_clrIntMod = Lists.newArrayList();
public List<Optional<Color>> li_clr = Lists.newArrayList();
public List<Optional<HSV>> li_hsv = Lists.newArrayList();
private int startPos_left_x;
private int start_top_y;
private com.attilax.lang.Function<Integer, Object> checkForgeColorFun;
private Point leftTop_point;
private int radis;
public Matrix(int i, int j) {
w = i;
h = j;
}
public Matrix() {
// TODO Auto-generated constructor stub
}
/**
* attilax 2016年11月8日 下午6:41:22
*
* @return
*/
public Map getCenterXy() {
Map m = Maps.newConcurrentMap();
int x = this.startPos_left_x + w - 2;
int y = this.start_top_y + h - 2;
m.put("x", x);
m.put("y", y);
return m;
}
public Point getCenterPoint() {
int x = this.startPos_left_x + w - 2;
int y = this.start_top_y + h - 2;
return new Point(x, y);
}
public Matrix setRadis(int i) {
this.radis=i;
this.w=2*i+1;
this.h=this.w;
return this;
}
publicMap<Color,HSV> chMap=Maps.newConcurrentMap();
List<Point> li_pts= Lists.newArrayList();
public void fill_and_setMtrx_leftTop_XY_AllMode(int x, int y) {
this.leftTop_point=new Point(x, y);
colorLi_clrIntMod = Lists.newArrayList();
colorLi_grbInt_noOP = Lists.newArrayList();
li_clr = Lists.newArrayList();
li_hsv = Lists.newArrayList();
li_pts= Lists.newArrayList();
this.startPos_left_x = x;
this.start_top_y = y;
for (int i = x; i < w + x; i++)
for (int j = y; j < h + y; j++) {
Point pt=new Point(i,j);
try {
int rgb = img.getRGB(i, j);
Color c=new Color(rgb);
HSV h=ColorUtil.rgb2hsv(c);
h.x=x;h.y=y;
li_hsv.add(Optional.of(h));
li_clr.add(Optional.of(c));
//chMap.put(c, h);
} catch (ArrayIndexOutOfBoundsException e) {
li_clr.add(Optional.empty());
li_hsv.add(Optional.empty());
}
li_pts.add(pt);
}
}
}
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
Atitit 图像处理 公共模块 矩阵扫描器的更多相关文章
- Atitit Atitit 图像处理之 Oilpaint油画滤镜 水彩画 源码实现
Atitit Atitit 图像处理之 Oilpaint油画滤镜 水彩画 源码实现 1.1. 具体原理参考1 2. 水彩画滤镜算法如下:1 2.1. 这个其实就是灰度层次降低维度的过程.2 2.2. ...
- Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉
Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...
- Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx 分类 图像处理知识点体系 v2 qb24.xlsx 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
- Atitit 图像处理知识点 知识体系 知识图谱v2
Atitit 图像处理知识点 知识体系 知识图谱v2 霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像 ...
- Atitit 图像处理知识点 知识体系 知识图谱
Atitit 图像处理知识点 知识体系 知识图谱 图像处理知识点 图像处理知识点体系 v2 qb24.xlsx 基本知识图像金字塔op膨胀叠加混合变暗识别与检测分类肤色检测other验证码生成 基本 ...
- Atitit 图像处理之理解卷积attilax总结
Atitit 图像处理之理解卷积attilax总结 卷积的运算可以分为反转.平移,相乘,求和. 在图像处理中,图像是一个大矩阵,卷积模板是一个小矩阵.按照上述过程,就是先把小矩阵反转,然 ...
- Atitit 图像处理—图像形态学(膨胀与腐蚀)
Atitit 图像处理-图像形态学(膨胀与腐蚀) 1.1. 膨胀与腐蚀1 1.2. 图像处理之二值膨胀及应用2 1.3. 测试原理,可以给一个5*5pic,测试膨胀算法5 1.4. Photoshop ...
- Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结
Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结 常用200个模块 2017/04/12 22:01 <DIR> acc 2017/04 ...
- Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx
Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx 1. 安装的原理,主要是解压,复制,设置三大步1 2. 目前我们常见的三大种安装模式,二进制模式与源码安装模 ...
随机推荐
- zabbix3.0 微信告警
首先需要申请一个企业号,其实公众号也可以,不过脚本不一样.而且公众号任何人都可以关注,有泄密的风险.企业号只有指定的人可以关注,安全性较高.申请企业号,需要一个绑定你本人开户银行卡的微信号. 申请网址 ...
- Struts2注解使用说明
Struts2注解 1 Struts2注解的作用 使用注解可以用来替换struts.xml配置文件!!! 2 导包 必须导入struts2-convention-plugin-2.3.15.jar包, ...
- Markdown示例
欢迎使用 Cmd Markdown 编辑阅读器 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们为记录思想 ...
- flask_日期和时间
不知道大家有没有发现,在我们学习flask的过程中,post的timestamp字段添加时间时一直用的是datetime.utcnow()来获取时间,但是它获取的时间跟本地时间不一样,下面我们来测试一 ...
- SQL之DDL
DDL是SQL定义语言,它主要包括三个关键字:create ,alter , drop(数据库关键字不分大小写 ),主要操作对象 有数据库.表.索引.视图等 操作 ...
- [java基础知识]java安装步骤
jre: java运行环境. jre = java虚拟机 + 核心类库(辅助java虚拟机运行的文件).如果只是运行java程序,只需要安装jre. jdk: java开发工具集 jd ...
- 多线程GCD的基本使用以及注意点
GCD的使用 一:队列 1.串行队列:添加到队列中的任务是一个一个执行的 2.并行(发)队列:添加到队列中的任务是多个同时执行的(一个队列中的多个任务可以同时执行) 3.主队列:里 ...
- GDB调试精粹及使用实例(转)
一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符 ...
- haproxy的使用
假如 www.example.com想要使用haproxy作为代理,则要在自己的 dns服务器设置AAAA记录对应于haproxy机器的IP. 这样访问www.example.com其实就访问了hap ...
- 控制反转容器& 依赖注入模式 ---读感。
几个web框架 : sprint Avalon PicoContainerclass MovieLister MovieFinder finder = ServiceLocator.movieFind ...