图像原理详解

一.图像像素原理

  • 每一张图像是由多个数量的像素点所组成的。
  • 分辨率是指单位面积内的像素点的数量。
  • 例如:1980*1080    

每一个像素点的颜色表达: RGB

R G B: 0-255 256个 8bit 256256256 0 255 255

数据--处理 --显示 字节 二进制

单位: bit 比特,位

整数型: byte short int long (-128 +127) -- (1000 - 1255)共 256个

二. 像素的储存

每一个 rgb 颜色有 32位

R G B 

R:1000 0000

把 三个byte存入 一个 int 中

0000 0000 32位 (alpha 表示透明度)

1000 0000 24位 R

1000 0000 16位 G

1000 0000 低八位 B

RGB

三. 存取:位运算操作符:<< >> & | ^

按位操作: >> 位移运算符

R >> 16
G >> 8
B >> 0

如何从 rgb 值中分别取出r,g,b 值

step 1 : write the decimal number into binary form

8,421,504=

0000 0000 32位

1000 0000 24位 R

1000 0000 16位 G

1000 0000 低八位 B

step 2: 移位

r: 整个32位数向右移动 16位数

0000 0000

0000 0000 R

0000 0000

1000 0000

g: 整个32位数向右移动 8位数

0000 0000

0000 0000

1000 0000 g

1000 0000

b: 整个32位数向右移动 0位数

0000 0000

1000 0000

1000 0000

1000 0000

 step 3 取最后 8位数

0xFF : 低八位全为1的数

R G
0000 0000 0000 0000 1000 0000 1000 0000

& 0000 0000 0000 0000 0000 0000 1111 1111 相同保留 不同为1

0000 0000 0000 0000 0000 0000 1000 0000

四。基本效果

```c int rgb = 8421504; // 整数拆分为 3 个 byte int red = (rgb >> 16)&0xFF; System.out.println ("red:"+red); int green = (rgb >> 8)&0xFF; System.out.println ("green:"+green); int blue = (rgb >> 0)&0xFF; System.out.println ("blue:"+blue); // 3 个byte 合成一个整数 ```
import javax.swing.*; 
import java.awt.*; 
import java.util.Random;
public class ImagePad extends JFrame {
public ImagePad(){
setTitle ("像素画");
setSize (1800,800);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); 
setLocationRelativeTo (null);
        setVisible (true);
    }
// 重写方法 JFrame 本身的绘制方法 paint
// Graphics 图形 -- 很多函数可以来绘制一些基础图形
/** *
     * @param g
     * setColor();
     * drawLine Rect Oval
     * fillRect Oval
 // //
  Color rgbcolor= new Color(red, green, blue);
rgbcolor.getRGB ();
int   value = ((255 & 0xFF) << 24) |
        ((red & 0xFF) << 16) |
        ((green & 0xFF) << 8)  |
        ((blue & 0xFF) << 0);
colorArr[i][j]= value;
* * */
@Override
public void paint (Graphics g) { super.paint (g);
//000 黑色 255255255 白色
Color color= new Color(255, 255, 255);
 g.setColor (color);
g.fillRect (100,100,500,500);
// 随机数
Random random = new Random (); 
random.nextInt (256);// [0 bound)
// 随机一个数组的像素值
int[][] colorArr= new int[500][500]; for (int i = 0; i < 500; i++) {
for (int j = 0; j < 500; j++) {
int red = random.nextInt (256); 
int green = random.nextInt (256);
 int blue = random.nextInt (256);
} }
// 绘制原始图形
for (int i = 0; i < 500; i++) {
    for (int j = 0; j < 500; j++) {
        Color color1 = new Color (colorArr[i][j]);
} }
g.setColor g.fillRect
(color1);
(100+i,100+j,1,1);
// 扩展处理 rgb 配比
for (int i = 0; i < 500; i+=20) {
    for (int j = 0; j < 500; j+=20) {
} }
}
灰度处理 马赛克
    int value = colorArr[i][j];
    int red = (value>>16)&0xFF;
    int green = (value>>8)&0xFF;
    int blue = (value>>0)&0xFF;
int gray = (red+green+blue)/3;
Color color1 = new Color (gray,gray,gray);
 g.setColor (color1);
g.fillRect (610+i,100+j,20,20);
public static void main (String[] args) { 
new ImagePad ();// 显示界面
 
 
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CCD(Charge Coupled Device)全称为电荷耦合器件,是70年代发展起来的新型半导体器件。它是在MOS集成电路技术基础上发展起来的,为半导体技术应用开拓了新的领域。它具有光电转换、信息存贮和传输等功能,具有集成度高、功耗小、结构简单、寿命长、性能稳定等优点,故在固体图像传感器、信息存贮和处理等方面得到了广泛的应用。CCD图像传感器能实现信息的获取、转换和视觉功能的扩展,能给出直观、真实、多层次的内容丰富的可视图像信息,被广泛应用于军事、天文、医疗、广播、电视、传真通信以及工业检测和自动控制系统。实验室用的数码相机、光学多道分析器等仪器,都用了CCD作图象探测元件。   一个完整的CCD器件由光敏单元、转移栅、移位寄存器及一些辅助输入、输出电路组成。CCD工作时,在设定的积分时间内由光敏单元对光信号进行取样,将光的强弱转换为各光敏单元的电荷多少。取样结束后各光敏元电荷由转移栅转移到移位寄存器的相应单元中。移位寄存器在驱动时钟的作用下,将信号电荷顺次转移到输出端。将输出信号接到示波器、图象显示器或其它信号存储、处理设备中,就可对信号再现或进行存储处理。由于CCD光敏元可做得很小(约10um),所以它的图象分辨率很高。     一.CCD的MOS结构及存贮电荷原理   CCD的基本单元是MOS电容器,这种电容器能存贮电荷,其结构如图1所示。以P型硅为例,在P型硅衬底上通过氧化在表面形成Si02层,然后在Si02上淀积一层金属为栅极,P型硅里的多数载流子是带正电荷的空穴,少数载流子是带负电荷的电子,当金属极上施加正电压时,其电场能够透过Si0.绝缘层对这些载流子进行排斥或吸引。于是带正电的空穴被排斥到远离电极处,剩下的带负电的少数载流子在紧靠Si0.层形成负电荷层(耗尽层),电子一旦进入由于电场作用就不能复出,故又称为电子势阱。   当器件受到光照时(光可从各电极的缝隙间经过Si0.层射入,或经衬底的薄P型硅射入),光子的能量被半导体吸收,产生电子-空穴对,这时出现的电子被吸引存贮在势阱中,这些电子是可以传导的。光越强,势阱中收集的电子越多,光弱则反之,这样就把光的强弱变成电荷的数量,实现了光与电的转换,而势阱中收集的电子处于存贮状态,即使停止光照一定时间内也不会损失,这就实现了对光照的记忆。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值