RLE编码,还不会,先搬运一下大佬的代码,理解之后再用Java自己实现

 #include <map>
#include <vector>
#include <cstdlib>
#include <iostream>
using namespace std;
static int around[][]= {{-,-},{-,},{-,},{,-},{,},{,-},{,},{,}};
map<int,int>::iterator a_It,b_It;
map<int,int> a,b;
vector<int> s;
int getValue(int index) {
int value=;
for(a_It = a.begin(); a_It != a.end(); a_It++) {
if(index<a_It->first) break;
value=a_It->second;
}
return value;
}
int getMax(int index,int width,int count) {
int center=getValue(index);
int h=index/width;
int max=;
for(int i=; i<; i++) {
int sub=index+around[i][]*width+around[i][];
if(h+around[i][]==sub/width && sub>= && sub<count) {
int a=getValue(sub);
max=abs(center-a)>max?abs(center-a):max;
}
}
return max;
}
void process(int width,int count) {
for(int i=; i < s.size(); i++) {
int index=s.at(i);
b.insert(pair<int,int>(index,getMax(index,width,count)));
}
}
int main() {
int width;
while(cin>>width && cout<<width<<endl && width) {
a.clear(),b.clear(),s.clear();
int v,l,count=;
while(cin>>v>>l && l) { //v有可能为0
a.insert(pair<int,int>(count,v));
count+=l;
}
for(a_It = a.begin(); a_It != a.end(); a_It++) {
for(int i=-; i<; i++) {
for(int j=-; j<; j++) {
int index=a_It->first+i*width+j;
if(index>= && index <count)
s.push_back(index);
}
}
}
s.push_back(width);
s.push_back(count-width);
process(width,count); b_It = b.begin();
int s=b_It->first;
int val=b_It->second;
b_It++;
for(; b_It != b.end(); b_It++) {
if(b_It->second != val) {
cout<<val<<" "<<b_It->first-s<<endl;
s=b_It->first;
val=b_It->second;
}
}
cout<<val<<" "<<count-s<<endl;
cout<<"0 0"<<endl;
}
return ;
}

Java-POJ1009-Edge Detection(未完成,有C++代码)的更多相关文章

  1. POJ1009 Edge Detection

    题目来源:http://poj.org/problem?id=1009 题目大意: 某图像公司用run length encoding(RLE)的方式记录和存储了大量的图像.程序的目标是读入压缩后的图 ...

  2. 计算机视觉中的边缘检测Edge Detection in Computer Vision

    计算机视觉中的边缘检测   边缘检测是计算机视觉中最重要的概念之一.这是一个很直观的概念,在一个图像上运行图像检测应该只输出边缘,与素描比较相似.我的目标不仅是清晰地解释边缘检测是怎样工作的,同时也提 ...

  3. 【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)

    Canny 边缘检测算法 Steps: 高斯滤波平滑 计算梯度大小和方向 非极大值抑制 双阈值检测和连接 代码结构: Canny Edge Detection | Gaussian_Smoothing ...

  4. Image Processing and Analysis_8_Edge Detection:Edge Detection Revisited ——2004

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  5. Edge Detection

      Edge Detection Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22604   Accepted: 5311 ...

  6. 轮廓检测论文解读 | Richer Convolutional Features for Edge Detection | CVPR | 2017

    有什么问题可以加作者微信讨论,cyx645016617 上千人的粉丝群已经成立,氛围超好.为大家提供一个遇到问题有可能得到答案的平台. 0 概述 论文名称:"Richer Convoluti ...

  7. Edge detection using LoG

    intensity梯度值分布跟图片的大小有关, 比如将一张小图片放大后会变得很模糊, 原先清晰的edge, 即大的梯度值变得模糊. 但是原有的边缘通常还是肉眼可分辨的. 但用Sobel 算子可能就检测 ...

  8. Java中替换HTML标签的方法代码

    这篇文章主要介绍了Java中替换HTML标签的方法代码,需要的朋友可以参考下 replaceAll("\\&[a-zA-Z]{0,9};", "").r ...

  9. java mail实现Email的发送,完整代码

    java mail实现Email的发送,完整代码 1.对应用程序配置邮件会话 首先, 导入jar <dependencies> <dependency> <groupId ...

随机推荐

  1. selenium webdriver执行远程 第三方js解决方案

    今天一个朋友问我问题 考虑了下直接上代码,这是伪代码不能执行,但是给出了思路 代码 url = 'http://www.qingmiaokeji.cn/test.js' res = urllib.re ...

  2. 用cookie存值

    ////用Request获取到客户端Cookie 判断是否为空 //if (Request.Cookies["CheckTime"] == null) //{ // //创建Coo ...

  3. nodejs安装管理工具nvm的安装和使用

    https://segmentfault.com/a/1190000007612011 Windows下载安装程序安装过程中,在 Set Node.js Symlink 这一步设置nodejs程序目录 ...

  4. javascript长按事件实现方式

    先贴出实践中实现的代码,参考(https://segmentfault.com/q/1010000011640937?sort=created): parentObj.addEventListener ...

  5. 1.Docker Compose

    一.Docker Compose 简介 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.从功能上看,跟 OpenStack 中的 Heat 十 ...

  6. 如何在php7.2/php7.3中安装mcrypt扩展?

    mcrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启.window环境下,PHP>=5.3,默认开启mcrypt扩展.mcrypt扩展是mcrypt加密库的接口 ...

  7. 玩转HP DL380 G5之一:HP服务器引导盘SmartStart CD下载地址收集

    由于hp企业应用从hp拆分出去,导致很多早期服务器相关资料被hp抹去,其中受影响比较严重的就是hp DL系列服务器,下面是本人从网上搜集到的hp引导盘镜像包,这些包内含服务器必要的驱动,一般随服务器一 ...

  8. H5_0009:关于HTML5中Canvas的宽、高设置问题

    关于HTML5中Canvas的宽.高设置问题 Canvas元素默认宽 300px, 高 150px, 设置其宽高可以使用如下方法(不会被拉伸): 方法一:        <canvas widt ...

  9. 关于Euler-Poisson积分的几种解法

    来源:https://www.cnblogs.com/Renascence-5/p/5432211.html 方法1:因为积分值只与被积函数和积分域有关,与积分变量无关,所以\[I^{2}=\left ...

  10. 将自定义工程加入到python根目录下

    1. 在D:\Program Files\Python\Lib\site-packages 添加.pth文件,文件名为模块名称(即auto_XXX),文件内容为模块所在目录.(python添加自定义的 ...