首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法让PHP检测到损坏的图像?

有办法让PHP检测到损坏的图像。可以使用PHP的GD库或ImageMagick库来检测图像是否损坏。以下是使用GD库检测损坏图像的示例代码:

代码语言:php
复制
function isImageBroken($imagePath) {
    $imageInfo = getimagesize($imagePath);
    if ($imageInfo === false) {
        return true;
    }
    $imageType = $imageInfo[2];
    switch ($imageType) {
        case IMAGETYPE_GIF:
            return false;
        case IMAGETYPE_JPEG:
            $image = imagecreatefromjpeg($imagePath);
            break;
        case IMAGETYPE_PNG:
            $image = imagecreatefrompng($imagePath);
            break;
        default:
            return true;
    }
    $imageCheck = imagepng($image, $imagePath . '_tmp.png');
    imagedestroy($image);
    if ($imageCheck === false) {
        return true;
    }
    $imageCheck = imagecreatefrompng($imagePath . '_tmp.png');
    $imageCheck = imagepng($imageCheck, $imagePath . '_tmp2.png');
    imagedestroy($imageCheck);
    if ($imageCheck === false) {
        return true;
    }
    $imageSize = filesize($imagePath);
    $imageSizeCheck = filesize($imagePath . '_tmp2.png');
    unlink($imagePath . '_tmp.png');
    unlink($imagePath . '_tmp2.png');
    if ($imageSize != $imageSizeCheck) {
        return true;
    }
    return false;
}

使用ImageMagick库检测损坏图像的示例代码如下:

代码语言:php
复制
function isImageBroken($imagePath) {
    try {
        $image = new Imagick($imagePath);
        $image->resizeImage(1, 1, Imagick::FILTER_POINT, 1);
        $image->writeImage($imagePath . '_tmp.png');
        $imageCheck = new Imagick($imagePath . '_tmp.png');
        $imageCheck->resizeImage(1, 1, Imagick::FILTER_POINT, 1);
        $imageCheck->writeImage($imagePath . '_tmp2.png');
        $imageSize = filesize($imagePath);
        $imageSizeCheck = filesize($imagePath . '_tmp2.png');
        unlink($imagePath . '_tmp.png');
        unlink($imagePath . '_tmp2.png');
        if ($imageSize != $imageSizeCheck) {
            return true;
        }
        return false;
    } catch (Exception $e) {
        return true;
    }
}

这两种方法都可以检测图像是否损坏,可以根据实际情况选择使用哪种方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【目标检测】YOLOv5:添加漏检率和虚率输出

前言 在目标检测领域,衡量一个模型优劣指标往往是mAP,然而实际工程中,有时候更倾向于看漏检率和虚率。...虚(虚警)即原本没有目标却误认为有目标,换句话说就是原本是背景却检测成了目标。...,而只需采用混淆矩阵中正例样本数目,否则分母将虚目标也混合进去,导致结果偏小。...这里TP(true positive)表示预测出正确框,即通过模型预测出框,逐个与该图像标注框求iou,如果与标注框产生最大iou大于之前设置好iou阈值,并且此预测框对应标签与通过iou...进一步思考,有没有办法模型训练以降低漏检率为目标呢,也就是以召回率最高来保存模型。

4.4K51

Why always OpenCV Error: Assertion failed (elements_read == 1) in unknown function ?

2.训练过程中出现“Premature end of JPEG file” 解决办法:这个一般是样本存在问题可以从两个方面来检查: (1)训练使用是灰度图像256色,查看是否有些图片是24位图; (...2)预览图像,看是否有些图片已损坏或者存储大小明显异常。...我样本中有张352*288灰度图像,大小才6KB。 3.训练过程中卡在某一stage,过了很久都没有动静。...解决办法:问题出现在取负样本那个函数icvGetHaarTrainingDataFromBG中。...因为负样本原则应该是无强大而且多样性越大越好,这在现实中是不可行,所以我们采集负样本一般无论从数量上还是多样性上都很难满足要求,所以出现上述问题就很正常了,不过此时分类器已经完全额、可以使用,因为它率已经很低

42610

【全栈修炼】414- CORS和CSRF修炼宝典

用 CORS 可以网页设计师用一般 XMLHttpRequest,这种方式错误处理比 JSONP 要来好。另一方面,JSONP 可以在不支持 CORS 老旧浏览器上运作。...当预请求通过以后,在预响应头中,会返回 Access-Control-Allow- 开头信息,其中 Access-Control-Allow-Origin 表示许可范围,值也可以是 *。...当预请求拒绝以后,在预响应头中,不会返回 Access-Control-Allow- 开头信息,并在控制台输出错误信息。 三、CSRF 1....X-XSS-Protection: 1 启用XSS过滤(通常浏览器是默认)。如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全部分)。...如果检测到跨站脚本攻击,浏览器将清除页面并使用CSP report-uri指令功能发送违规报告。

2.7K40

「Mysql索引原理(十五)」维护索引和表-修复损坏

维护表有三个主要目的:找到并修复损坏表,维护准确索引统计信息,减少碎片。 表损坏(corruption)是很糟糕事情。对于MyISAM存储引擎,表损坏通常是系统崩溃导致。...如果你遇到了古怪问题——例如一些不应该发生错误——可以尝试运行CHECK TABLE来査是否发生了表损坏(注意有些存储引擎不支持该命令;有些引擎则支持以不同选项来控制完全检查表方式)。...不过,如果损坏是系统区域,或者是表“行数据”区域,而不是索引,那么上面的办法就没有用了。在这种情况下,可以从备份中恢复表,或者尝试从损坏数据文件中尽可能地恢复数据。...常见类似错误通常是由于尝试使用rsync备份InnodB导致。不存在什么査询能够InnoDB表损坏,也不用担心暗处有“陷阱”。...如果某条査询导致InnodB数据损坏,那一定是遇到了bug,而不是查询问题。 如果遇到数据损坏,最重要是找出是什么导致了损坏,而不只是简单地修复,否则很有可能还会不断地损坏

2.2K20

对于森林大火肆虐,AI 能做些什么?

森林火灾没有办法完全避免,我们也经常在报道中,听闻火灾带来巨大损失。那么对于森林大火有没有能够抵挡方式呢? 在救灾工作中,及时掌握全面而准确信息,以实现资源合理分配,是至关重要。...在那一次火灾中,从卫星图像中识别出结构后,根据受灾前后图像对比, AI 模型用红点标识出损坏所在位置。 ?...年德克萨斯州附近被飓风哈维损坏道路识别时,达到了 88.8% 准确率,而在 Santa Rosa 火灾中识别损坏建筑物时准确率达到了 81.1%。...通过对比灾难前后图片数据,并且与人工提取作对比,计算出灾害影响指数( DII ) 而在灾难预测方面, CrowdAI 也在探索能够预测到灾害模型,据称,他们在尝试通过整合风力、降水和社交媒体等数据...,积极开发能超越卫星图像深度学习工具。

51430

驱动产品故障维修和诊断

以上客户对故障描述有部分是对故障现象进行了简单说明,有的部分是直接对损坏位置进行了自己判断。对部分故障描述不准确服务,维修工程师往往需要多次跟客户联系确认。...还有部分客户对装置故障产生了误判,有部分装置实际未检测到故障。 那么故障描述准确意义何在,以及如何做到准确描述故障? 首先故障描述准确,对故障诊断来说是件事半功倍事情。...6, 结果是什么,采取措施后状态,故障有没有发生变化,发生了怎样变化。...当变频器发热与散热达到平衡时,温度也就基本稳定了。变频器会通过温度传感器实时检测散热器温度,如果检测到温度超过报警阈值时就会触发温度报警故障。...图3 风冷变频器温度影响因素 三、检测内容完整 先对装置进线目,发现装置风机以及下口进线灰尘较重,见图4和图5。继续对装置进线检查,发现装置散热器风道几乎完全堵塞,见图6。

59320

人脸检测发展:从VJ到深度学习(上)

当手机把你脸变得美若天仙,当考勤机认出你脸对你表示欢迎,你知道是什么魔力冷冰冰机器也变得温情脉脉,呆呆设备也变得善解人意吗?...更确切地说,机器看到图像上每一个点颜色值,因此对于机器来说,一张图像就是一个由数排成阵列。试想一下,如果我把每个点颜色值都念给你听,你能告诉我对应这张图像有没有人脸和人脸在哪里吗?...显然,最直接方式就是观察窗口在图像上从左至右、从上往下一步一步地滑动,从图像左上角滑动到右下角——这就是所谓滑动窗口范式,你可以将它想象成是福尔摩斯(检测器)在拿着放大镜(观察窗口)仔细观察案发现场...通过构建图像金字塔,同时允许窗口和人脸贴合程度在小范围内变动,我们就能够检测到不同位置、不同大小的人脸了。...复杂分类器往往具有更强分类能力,能够获得更好分类准确度,但是分类时计算代价比较高,而简单分类器虽然计算代价小,但是分类准确度也较低。那么有没有兼顾计算代价和分类准确度两方面的办法呢?

1.6K70

长文干货!走近人脸检测:从 VJ 到深度学习(上)

当手机把你脸变得美若天仙,当考勤机认出你脸对你表示欢迎,你知道是什么魔力冷冰冰机器也变得温情脉脉,呆呆设备也变得善解人意吗?...更确切地说,机器看到图像上每一个点颜色值,因此对于机器来说,一张图像就是一个由数排成阵列。试想一下,如果我把每个点颜色值都念给你听,你能告诉我对应这张图像有没有人脸和人脸在哪里吗?...显然,最直接方式就是观察窗口在图像上从左至右、从上往下一步一步地滑动,从图像左上角滑动到右下角——这就是所谓滑动窗口范式,你可以将它想象成是福尔摩斯(检测器)在拿着放大镜(观察窗口)仔细观察案发现场...通过构建图像金字塔,同时允许窗口和人脸贴合程度在小范围内变动,我们就能够检测到不同位置、不同大小的人脸了。...复杂分类器往往具有更强分类能力,能够获得更好分类准确度,但是分类时计算代价比较高,而简单分类器虽然计算代价小,但是分类准确度也较低。那么有没有兼顾计算代价和分类准确度两方面的办法呢?

71360

你已经是一个成熟AI了,用GitHub项目技术手段实现“穿越”……

AI修复下港星照片 “你我当年”运用主要是CNN、GAN等AI技术,即卷积神经网络和生成式对抗网络”,人想到美图秀秀一键磨皮,它们虽然都利用了卷积神经网络,但二者并不一样。...你我当年:是做加法,可以自动补充细节,即利用AI算法替代图像中缺失或者损坏数据。 ? AI修复大小S照片在网上引起惊叹 ? ?...通过输入学习大量数据集(数百万张带有成千个标签图像),神经网络可以实现准确分类,实施一个判别式预训练神经网络来指导图像重建。 当然场主也找到了个笨办法,人人都可实践。...参照main.py中,指定需要预处理图像文件夹、检测到的人脸图像保存文件夹、对齐后图像人脸文件夹路径等系列参数,调用test()函数即可。...Test\Val_detect'#保存中间检测到图像路径 savePathAligned=r'D:\Test\Val_aligned'#对齐后的人脸图像保存路径 test(ImagePath

1.2K20

拒绝脸盲,7天挑战人脸识别技术,你敢来吗?

但是,小鲜肉太多人分不清,怎么办?照片人太多找不到爱豆怎么办?其实明星撞脸,不一定是整容原因,在我们刚开始追星时候,一定会遇到一个问题:脸盲症! ? 在医学上,“脸盲症”是一种病。...在ATM机上通过人脸识别进行取款、国家司法考试用人脸识别技术验证考生身份、在地铁等人流密集地将人脸识别应用于反恐活动、利用人脸识别在边处推行自助通关……可以说,它涉及到社会运作多个领域,为识别个人身份提供了高效技术支持...人脸检测——表情管理大师 人脸检测需要图像中所有的人脸对应位置,算法输出是人脸外接矩形在图像坐标,可能还包括姿态如倾斜角度等信息来。否则就会如下图中的人脸检测结果,最左边漏掉一位。 ?...小编神总结—— 综上所示,人脸从检测到识别需要三步: 1、人脸检测和定位:检测图中有没有人脸,或获取人脸或人脸上器官位置。...现在,人民邮电出版社异步社区邀请京东CV算法工程师、北航硕士、计算机视觉、竞赛、科大讯飞金牌讲师刘老师,《动手学深度学习》训练营7天带你掌握人脸识别技术,理论知识和案例解析,0基础小白也能轻松入门!

97410

AI 作为关键证据将一男子送入监狱:白蹲 11 个月牢房

Herring挥手他载一程,Williams认识这个住在附近年轻人,于是他上了车。...ShotSpotter坚持声称,它没有为了支持警方案子而对任何数据有不当改动,并表示无论最初实时警报如何,证明是枪击证据都是后续取证分析结果,这一结果后来提交给法院。...ShotSpotter传感器工作原理 ShotSpotter声称它没有透露其传感器位置,担心它们遭到损坏。传感器通常安装在建筑物、电话线杆和路灯上。 ①枪声响起后,声音向外传开来。...多个传感器检测到声音后标以时间戳,并用三角测量法测定枪声方位。 ②ShotSpotter算法对传感器检测到声音类型(比如枪声或爆竹声)进行分类。...在Williams律师们要求审理此案法官展开调查后,方上个月撤回了ShotSpotter报告,并以证据不足为由要求驳回此案,法官同意了这一要求。Williams现在恢复了自由身。

21910

Hinton领衔谷歌大脑新研究,拯救被认成步枪乌龟

一种叫作DARCCC技术,能将重构图像和输入图像作对比,继而识别出对抗图像,检测系统有没有受到攻击。 对抗攻击,是一种专职欺骗图片识别AI方法。...若是未加篡改真实图像,重构结果应该和输入图像 (乌龟) 很接近: ?...只要一张图重构误差超过这个阈值,就把它标记成对抗图像。 ? △ 输入与重构之间距离 如此,这个算法就可以识别出,系统有没有受到不明力量攻击。...前两种是白盒攻击中常用FGSM(Fast Gradient Sign Method)和BIM(Basic Iterative Methods)算法,这两次结果研究人员兴奋,因为这两种日常方法都没有攻击成功...这样一来,就算是对抗图像,AI还是可以为它生成一个优雅重构。 系统就没有办法测到攻击了。 这是在MNIST和fashionMNIST数据集中检测时结果: ?

49120

Hinton领衔谷歌大脑新研究,拯救被认成步枪乌龟

一种叫作DARCCC技术,能将重构图像和输入图像作对比,继而识别出对抗图像,检测系统有没有受到攻击。 对抗攻击,是一种专职欺骗图片识别AI方法。...若是未加篡改真实图像,重构结果应该和输入图像 (乌龟) 很接近: ?...只要一张图重构误差超过这个阈值,就把它标记成对抗图像。 ? △ 输入与重构之间距离 如此,这个算法就可以识别出,系统有没有受到不明力量攻击。...前两种是白盒攻击中常用FGSM(Fast Gradient Sign Method)和BIM(Basic Iterative Methods)算法,这两次结果研究人员兴奋,因为这两种日常方法都没有攻击成功...这样一来,就算是对抗图像,AI还是可以为它生成一个优雅重构。 系统就没有办法测到攻击了。 这是在MNIST和fashionMNIST数据集中检测时结果: ?

51210

母猪产仔早知道,这次南农用上了英伟达边缘 AI Jetson

此模型由 4 个部分组成: Input:图像输入 BackBone:母猪和仔猪图像特征提取 Neck:图像特征融合 Prediction:预测(因母猪和仔猪体型差异较大,这一部分使用了 3 种不同特征图...,但精度较低,存在对仔猪漏检和误情况。...结果显示,母猪姿势漏检和误主要受到光照变化影响;仔猪主要受到热灯开启影响,即强光下仔猪难以识别;第一只仔猪出生时间和不同颜色热灯场景对模型检测能力影响较小。...表 2: YOLOv5s 模型在复杂环境下测试情况 左二栏:母猪姿势漏检率在复杂光照下最高 左三栏:母猪姿势率在复杂光照下与夜间开启热灯情况下较高 左四栏:仔猪误数量在复杂光照下和夜间热灯开启情况下较高...AI 带来更智能、更精细养殖模式正在逐渐推广。 然而目前 AI 养猪推广还面临着费用高、操作较为复杂等亟待解决问题,如何更多养猪场敞开怀抱接纳 AI,恐怕还有很长路要走。

20340

XSS一些基本概念

其实质就是以AJAX为载体,使用自定义HTTP头浏览器与服务器进行协商,从而决定跨域请求是否应该成功。 所以实现CORS通信关键是服务器是否实现了CORS接口。...对于非简单请求,它会实现进行预,其原理如下: 1.进行预,以OPTIONS方法向服务器发送Origin头部,Access-Control-Request-Method头部(接下来请求方法,如POST...),Access-Control-Allow-Headers(允许自定义头部信息),Access-Control-Max-Age(应该将预请求缓存多长时间,以秒为单位) 3.通过预请求后,以后每次浏览器...我们再用这个方法实现跨域时,怎么远程JS知道我们本地回调函数叫什么名字? 这就需要通过一些手段动态生成服务端JS代码了。...dns-prefetch" href="http://xxx.cn"> (DNS预加载) 4 script-src http://www.a.com/b/ 限制了只能从某特定路径去加载JS脚本 对此一般解决方法是看看此目录下有没有可控重定向文件

1.1K10

算法优化二——如何提高人脸检测正确率

人脸检测是一个非常经典问题,但是还是有一些常见问题出现在实际使用当中:   (1)误(把非人脸物体当作人脸)较多,非人脸图像当作人脸送入后续算法,会引起一系列不良后果。   ...(2)漏检问题,例如戴墨镜、大胡子、逆光条件、黑种人、倾斜姿态较大脸无法检测到。...接下来是一些具体对比: (1)检测时间上对比 图像 Haar_alt Haar_alt2 lbp 复杂背景图像 2054 2309 948 简单背景图像 912 964 326 (2)检测结果上对比...: 图像 Haar_alt Haar_alt2 lbp 复杂背景图像 70 70 69 简单背景图像 277 283 292 二、detectMultiScale函数   选择最终的人脸分类器后,若想在这个基础上继续优化...如果视频中误到很多无用小方框,那么就把minSize尺寸改大一些,默认为30*30。

1.9K100

人脸检测通用评价标准

首先检测问题是有Bbox框,要把检测问题当做分类来处理,就要定义出什么样检测结果是正确,一般情况下,当检测框和Ground TruthIOU大于0.5时,认为这张人脸被正确测到,有了这个前提...,但是输出出来框有很多错误,还没有遍历完数据集就已经达到100个误了,那么它原本很高召回率在“100张误下召回率”这个评价标准中也体现不出来。...有以下特点: 图像分辨率较小,所有图像较长边缩放到450,也就是说所有图像都小于450450,最小标注人脸2020,包括彩色和灰度两类图像。...每张图像的人脸数量偏少,平均1.8人脸/图,绝大多数图像都只有一人脸; 比如最新开源SeetaFace2,在FDDB上,100张误检测率达到92%。...图像分辨率普遍偏高,所有图像宽都缩放到1024,最小标注人脸10*10,都是彩色图像; 每张图像的人脸数据偏多,平均12.2人脸/图,密集小人脸非常多; 分训练集train/验证集val/测试集test

2.2K10
领券