专业程序设计part1

7 专业程序设计

(有多少人在大学里学到了自己真正喜欢的专业??并在此专业上获得了升华??)i==

软件图标下载网址:easyicon

01thu

4邻域 8邻域 D邻域 是啥

像素间的连通性,是转为矢量数据的重要依据(分为8联通/4连通,03SAT计算机图形学上提到,密集用8,凸显尖锐用4,但为啥?又没听到md)

任何图像文件都具有头文件吗?

typedef struct 定义数据结构

传感器放四个波段,一般是红绿蓝黄??。。。。七个波段的第一个像素

bsq bip bil 三种数据存储结构envisatSAR 存复数

中值滤波对椒盐噪声很管用

扫描二维码关注公众号,回复: 6903049 查看本文章

非监督分类KMEAN

和机器学习里的非监督分类差别,不是函数,是几何形式,找质心相同点,也是先随机选取再进行迭代

上面无非是举了一些专业程序功能设计要解决的问题的例子,,

02 tue

计算机窗口的坐标从左上角开始

wps20

wps21

wps22

wps23

wps24

读取显示遥感图像,给出图像路径,open(gdal.open)键实现读取路径的功能,构造成一个bmp,贴到panel里面

02THU

wps25

wps26

checkchanged触发事件。修改enable属性,有个问题,checkchanged是争对所有的check键吗???逻辑问题,你再想想,不是,你跳出那个思维,想不通自己盯着代码自己想,只有在rgbchecked时,enable是true 其他都是false,so easy

加载图像→框→

dll,动态链接库 bin binary debug 调试 版本

类:成员属性和成员方法

面向对象,函数重载概念,函数名一样,参数不同

wps27

类实例化对象

wps28

wps29

可不打具体路径

弹出对话框

wps30

wps31

wps32

注意大小写敏感Dataset/DataSet可以写全路径,system.DataSet...一个屁问题搞半天

实现了点击加载图像,跳出窗口,过滤文件格式,加载影像,读取宽高数据的功能,要透彻了解代码还需对gdal深入了解一下把。。

03tue

伪代码:

打开文件→获取路径→用gdal.open()读取路径→dataset→界面

装箱拆箱object

拆箱要知道类别知道怎么拆因为字节一段一段存的,不说明会乱码,读不出来,装随便装,

SelectedIndex把当前列表索引值设为零?干吗用?

还有for循环语句,再了解了解,逻辑

bug1:很多都是事件未清零

需求:

已有carlenrt.dataset,全有

head&data

dn值加通道,rgb显示,嗯,只是可视化一下

还缺要求:要显示什么

动画基于1/24

图像显示也这个原理,一秒读24次重新生成bmp,显示

图像显示:

创建bmp→创建buffer(缓冲区)长宽→贴

rgb加色原理

nd值→缓冲区→rgb值,显示颜色

using system.drawing

public class gdalprovider

{

}

public bitmap getbmp(os.geo.gdal.datasetds,rectangle showrcet,int[] bandlist)

{

}

03国庆

04TUE

图像旋转:

已有dataset,废话。。。

1.需要用户输入旋转角度、背景值,输出路径

2.设计UI

3.以图像的中心点旋转,

屏幕坐标→数学坐标→旋转坐标(矩阵)

注意角度和弧度的关系,计算机图形学里也有

wps33

wps34

预先加备选值

(设定下拉框的值,把下拉框选中的值赋给文本框算法)

数学方法呃你看着看吧

04THU

1.弹出旋转窗口

2.设定局部全局变量

wps35

在rotate.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using OSGeo.GDAL;

namespace RSimage2018

{

public partial class rotateDialog : Form

{

public Dataset gdalDS = null;

public rotateDialog(Dataset ds)///见上定义

{

InitializeComponent();

gdalDS = ds;

}

private void comboBoxAngle_SelectedIndexChanged(object sender, EventArgs e)

{

textBoxAngle.Text = comboBoxAngle.SelectedItem.ToString();

///下拉框值赋给文本框

}

private void comboBoxBackground_SelectedIndexChanged(object sender, EventArgs e)

{

textBoxBackground.Text = comboBoxBackground.SelectedItem.ToString();

}

private void btnSaveFilePath_Click(object sender, EventArgs e)

{

///string SaveFilePath;

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Title = "保存旋转文件";

saveFileDialog.Filter = "Tiff文件|*.tif|Erdas img文件|*.img|Bmp文件|*.bmp|所有文件|*.*";

if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

textBoxSaveFilePath.Text = saveFileDialog.FileName;

}

}

private void btnOk_Click(object sender, EventArgs e)

{

if (textBoxAngle.Text == ""||textBoxBackground.Text==""||textBoxSaveFilePath.Text=="")

///判断这些是否为空

{

MessageBox.Show("请输入角度、背景值与保存路径");

return;

}

}

}

}

以上为旋转窗口的代码,今天的课实现了影像旋转功能,建完窗口后,对窗口中的组建进行事件的编写,其中combox要在另一栏中设定可选值,事件写完之后,写练习,

猜你喜欢

转载自www.cnblogs.com/heikejingxiao/p/11269397.html
今日推荐