电视机屏幕出现S型的波纹状的干扰线怎么解决?

电视机屏幕出现S型的波纹状的干扰线怎么解决?,第1张

电视机屏幕上出现S型波纹干扰线主要有以下几种情况:
1、因为时间长,电解液干,或者引脚虚焊等原因,电源部分滤波电容失效,导致滤波效果不佳,出现干扰波纹。这个要检查滤波电路,将失效的电容进行更换。
2、外网有大功率电器的交流干扰谐波通过你入户的220线进入了电视电源,造成波纹干扰。这种情况一是远离干扰源,二是加屏蔽措施,比如屏蔽电路。
3、机内的电源线和信号线靠的太近,如是这种情况,可以打开机子,将两者分开,中间加屏蔽层进行分隔。
4、如果干扰波纹时有时无,那多数不是机内电路问题,撇除扭曲的同时画面伴有噪波点(信号不好),就是外边电器的辐射干扰,把电视机换个位置看是否消除干扰。或者检查一下机子内部的消磁线路,看是否是消磁线路出现问题。

可以选择重启程序来解决此问题。
工程图简称图样以下叫图样是根据投影法来表达物体的投影面,根据投影的方式的不同可分为正投影和斜投影。
当今,信息时代对工程图学又赋予了新的任务。随着计算机科学和技术的发展,计算机绘图技术推动了工程设计方法(从人工设计到计算机辅助设计)和工程绘图工具(从尺规到计算机)的发展,改变着工程师和科学家的思维方式和工作程序。

一常见的验证码
1,四位数字,随机的一数字字符串,最原始的验证码,验证作用几乎为零。
2,CSDN网站用户登录用的是GIF格式,目前常用的随机数字验证码。上的字符比较中规中矩,验证作用比上一个好。没有基本图形图像学知识的人,不可破!可惜读取它的程序,在CSDN使用它的第一天,好像就在论坛里发布了,真是可怜!
3,QQ网站用户登录用的是PNG格式,用的随机数字+随机大写英文字母,整个构图有点张扬,每刷新一次,每个字符还会变位置呢!有时候出来的,人眼都识别不了,厉害啊…
4,MS的hotmail申请时候的是BMP格式, 随机数字+随机大写英文字母+随机干扰像素+随机位置。
5,Google的Gmail注册时候的是JPG格式,随机英文字母+随机颜色+随机位置+随机长度。
6,其他各大论坛的是XBM格式,内容随机。
二验证码作用分析
验证码起源:因为攻击者会使用有害程序注册大量的 Web 服务帐户(如 Passport)。攻击者可以使用这些帐户为其他的用户制造麻烦,如发送垃圾邮件或通过同时反复登录多个帐户来延缓服务的速度。在大多数情况下,自动注册程序不能识别此中的字符。简单的说呢,就是防止攻击者编写程序,自动注册,重复登录暴力破解密码。验证码技术应运而生。
验证码实现流程:服务器端随机生成验证码字符串,保存在内存中,并写入,发送给浏览器端显示,浏览器端输入验证码上字符,然后提交服务器端,提交的字符和服务器端保存的该字符比较是否一致。一致就继续,否则返回提示。攻击者编写的robot程序,很难识别验证码字符,顺利的完成自动注册,登录。。。。。。。。。而用户可以识别填写,所以这就实现了阻挡攻击的作用。而的字符识别,就是看上的干扰强度了。就实际的效果来说,验证码只是增加攻击者的难度,而不可能完全的防止。
1,论坛中的验证码的作用
目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅,里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。
因为你的WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是身份欺骗它通过在客户端脚本写入一些代码,然后利用其客户机在网站论坛反复登陆,或者攻击者创建一个HTML窗体,其窗体如果包含了你注册窗体或发帖窗体等相同的字段,然后利用"><php
session_start();
class Authnum {
//对象、宽度、高度、验证码长度
private $im;
private $im_width;
private $im_height;
private $len;
//随机字符串、y轴坐标值、随机颜色
private $randnum;
private $y;
private $randcolor;
//背景色的红绿蓝,默认是浅灰色
public $red=238;
public $green=238;
public $blue=238;
/
可选设置:验证码类型、干扰点、干扰线、Y轴随机
设为 false 表示不启用
/
//默认是大小写数字混合型,1 2 3 分别表示 小写、大写、数字型
public $ext_num_type='';
public $ext_pixel = false; //干扰点
public $ext_line = false; //干扰线
public $ext_rand_y= true; //Y轴随机
function __construct ($len=4,$im_width='',$im_height=25) {
// 验证码长度、宽度、高度是实例化类时必需的数据
$this->len = $len; $im_width = $len 15;
$this->im_width = $im_width;
$this->im_height= $im_height;
$this->im = imagecreate($im_width,$im_height);
}
// 设置背景颜色,默认是浅灰色背景
function set_bgcolor () {
imagecolorallocate($this->im,$this->red,$this->green,$this->blue);
}
// 获得任意位数的随机码
function get_randnum () {
$an1 = 'abcdefghijklmnopqrstuvwxyz';
$an2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$an3 = '0123456789';
if ($this->ext_num_type == '') $str = $an1$an2$an3;
if ($this->ext_num_type == 1) $str = $an1;
if ($this->ext_num_type == 2) $str = $an2;
if ($this->ext_num_type == 3) $str = $an3;
for ($i = 0; $i < $this->len; $i++) {
$start = rand(1,strlen($str) - 1);
$randnum = substr($str,$start,1);
}
$this->randnum = $randnum;
$_SESSION[an] = $this->randnum;
}
// 获得验证码Y轴
function get_y () {
if ($this->ext_rand_y) $this->y = rand(5, $this->im_height/5);
else $this->y = $this->im_height / 4 ;
}
// 获得随机色
function get_randcolor () {
$this->randcolor = imagecolorallocate($this->im,rand(0,100),rand(0,150),rand(0,200));
}
// 添加干扰点
function set_ext_pixel () {
if ($this->ext_pixel) {
for($i = 0; $i < 100; $i++){
$this->get_randcolor();
imagesetpixel($this->im, rand()%100, rand()%100, $this->randcolor);
}
}
}
// 添加干扰线
function set_ext_line () {
if ($this->ext_line) {
for($j = 0; $j < 2; $j++){
$rand_x = rand(2, $this->im_width);
$rand_y = rand(2, $this->im_height);
$rand_x2 = rand(2, $this->im_width);
$rand_y2 = rand(2, $this->im_height);
$this->get_randcolor();
imageline($this->im, $rand_x, $rand_y, $rand_x2, $rand_y2, $this->randcolor);
}
}
}
/创建验证码图像:
建立画布(__construct函数)
设置画布背景($this->set_bgcolor();)
获取随机字符串($this->get_randnum ();)
文字写到上(imagestring函数)
添加干扰点/线($this->set_ext_line(); $this->set_ext_pixel();)
输出
/
function create () {
$this->set_bgcolor();
$this->get_randnum ();
for($i = 0; $i < $this->len; $i++){
$font = rand(4,6);
$x = $i/$this->len $this->im_width + rand(1, $this->len);
$this->get_y();
$this->get_randcolor();
imagestring($this->im, $font, $x, $this->y, substr($this->randnum, $i ,1), $this->randcolor);
}
$this->set_ext_line();
$this->set_ext_pixel();
header("content-type:image/png");
imagepng($this->im);
imagedestroy($this->im); //释放图像资源
}
}//end class
/使用验证码类的方法:
$an = new Authnum(验证码长度,宽度,高度);
实例化时不带参数则默认是四位的6025尺寸的常规验证码
表单页面检测验证码的方法,对比 $_SESSION[an] 是否等于 $_POST[验证码文本框ID]
可选配置:
1验证码类型:$an->ext_num_type=1; 值为1是小写类型,2是大写类型,3是数字类型
2干扰点:$an->ext_pixel = false; 值为false表示不添加干扰点
3干扰线:$an->ext_line = false; 值为false表示不添加干扰线
4Y轴随机:$an->ext_rand_y = false; 值为false表示不支持Y轴随机
5背景:改变 $red $green $blue 三个成员变量的值即可
/
$an = new Authnum();
$an->ext_num_type='';
$an->ext_pixel = true; //干扰点
$an->ext_line = false; //干扰线
$an->ext_rand_y= true; //Y轴随机
$an->green = 238;
$an->create();
>

假设已经把验证码保存到本地了
我说一下验证码识别的大致步骤吧
1,读取到bitmap
2,进行灰度 *** 作
3,进行才二值 *** 作
4,如果有干扰点 一般用滤波器或八邻域去干扰点
5,如果有干扰线 如果是简单的直线可以用扫描法,八后法等,复杂的应该根据特点调整算法
6,如果有干扰色块 也应该想法去除
7,如果有较大的倾斜 需要进行适当校正
8,此时得到的应该是比较干净的字符了,如果是非粘连的可以直接用投影法分割成单个字符
如果有粘连,需要根据图形特点从算法上做相应的处理,保证大致分割正确
9,分割成单个字符以后,如果字符比较正常 变形扭曲程序不大,可以直接用模式识别
如果变形扭曲较厉害,一般建议使用神经网络进行训练后再识别
如果是比较简单的验证码可以使用网上的一些组件,我常用的一个是OcrKingApi
不是太复杂的识别效果还可以,关键是免费的。使用文档可以看一下文库的链接
>验证码要成功显示就必须要有一个验证码生成器,所以就要写一个验证码生成器。我在app中新建了一个py文件check_coedpy文件,这就是验证码生成器。代码如下
import random
from PIL import Image, ImageDraw, ImageFont, ImageFilter
_letter_cases = "abcdefghjkmnpqrstuvwxy" # 小写字母,去除可能干扰的i,l,o,z
_upper_cases = _letter_casesupper() # 大写字母
_numbers = ''join(map(str, range(3, 10))) # 数字
init_chars = ''join((_letter_cases, _upper_cases, _numbers))
def create_validate_code(size=(120, 30),
chars=init_chars,
img_type="GIF",
mode="RGB",
bg_color=(255, 255, 255),
fg_color=(0, 0, 255),
font_size=18,
font_type="Monacottf",
length=4,
draw_lines=True,
n_line=(1, 2),
draw_points=True,
point_chance=2):
"""
@todo: 生成验证码
@param size: 的大小,格式(宽,高),默认为(120, 30)
@param chars: 允许的字符集合,格式字符串
@param img_type: 保存的格式,默认为GIF,可选的为GIF,JPEG,TIFF,PNG
@param mode: 模式,默认为RGB
@param bg_color: 背景颜色,默认为白色
@param fg_color: 前景色,验证码字符颜色,默认为蓝色#0000FF
@param font_size: 验证码字体大小
@param font_type: 验证码字体,默认为 ae_AlArabiyattf
@param length: 验证码字符个数
@param draw_lines: 是否划干扰线
@param n_lines: 干扰线的条数范围,格式元组,默认为(1, 2),只有draw_lines为True时有效
@param draw_points: 是否画干扰点
@param point_chance: 干扰点出现的概率,大小范围[0, 100]
@return: [0]: PIL Image实例
@return: [1]: 验证码中的字符串
"""
width, height = size # 宽高
# 创建图形
img = Imagenew(mode, size, bg_color)
draw = ImageDrawDraw(img) # 创建画笔
def get_chars():
"""生成给定长度的字符串,返回列表格式"""
return randomsample(chars, length)
def create_lines():
"""绘制干扰线"""
line_num = randomrandint(n_line) # 干扰线条数
for i in range(line_num):
# 起始点
begin = (randomrandint(0, size[0]), randomrandint(0, size[1]))
# 结束点
end = (randomrandint(0, size[0]), randomrandint(0, size[1]))
drawline([begin, end], fill=(0, 0, 0))
def create_points():
"""绘制干扰点"""
chance = min(100, max(0, int(point_chance))) # 大小限制在[0, 100]
for w in range(width):
for h in range(height):
tmp = randomrandint(0, 100)
if tmp > 100 - chance:
drawpoint((w, h), fill=(0, 0, 0))
def create_strs():
"""绘制验证码字符"""
c_chars = get_chars()
strs = ' %s ' % ' 'join(c_chars) # 每个字符前后以空格隔开
# font = ImageFonttruetype(font_type, font_size)
font = ImageFontload_default()font
font_width, font_height = fontgetsize(strs)
drawtext(((width - font_width) / 3, (height - font_height) / 3),
strs, font=font, fill=fg_color)
return ''join(c_chars)
if draw_lines:
create_lines()
if draw_points:
create_points()
strs = create_strs()
# 图形扭曲参数
params = [1 - float(randomrandint(1, 2)) / 100,
0, 0, 0, 1 - float(randomrandint(1, 10)) / 100, float(randomrandint(1, 2)) / 500, 0001, float(randomrandint(1, 2)) / 500 ]
img = imgtransform(size, ImagePERSPECTIVE, params) # 创建扭曲
img = imgfilter(ImageFilterEDGE_ENHANCE_MORE) # 滤镜,边界加强(阈值更大)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13404629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存