当前位置: 首页 > news >正文

清廉桂林网站化妆品网站制作需要

清廉桂林网站,化妆品网站制作需要,wordpress适合做商城吗,平谷网站建设服务OpenCV IMDecode模式说明【生产问题处理】 1 前言 今天售后同事反馈说客户使用我们的图片处理#xff0c;将PNG图片处理为JPG图片之后#xff0c;变为了白板。 我们图片处理使用的是openCV来进行处理 2 分析 2.1 图片是否损坏#xff1a;非标准PNG头部 于是#xff0c;马…OpenCV IMDecode模式说明【生产问题处理】 1 前言 今天售后同事反馈说客户使用我们的图片处理将PNG图片处理为JPG图片之后变为了白板。 我们图片处理使用的是openCV来进行处理 2 分析 2.1 图片是否损坏非标准PNG头部 于是马上写了一个demo尝试本地复现结果复现概率是必现。 package mainimport (fmtgocv.io/x/gocv_ image/jpeg_ image/pngioos )func main() {params : []int{gocv.IMWriteJpegQuality, 1}srcFile, err : os.Open(/Users/xxx/GolandProjects/xxx/image-encoder/demo/quality/3.png)if err ! nil {fmt.Printf(%v, err)return}defer srcFile.Close()imageBuf, err : io.ReadAll(srcFile)if err ! nil {fmt.Printf(%v, err)return}mat, err : gocv.IMDecode(imageBuf, gocv.IMReadUnchanged)if err ! nil {fmt.Printf(%v, err)return}buf, err : gocv.IMEncodeWithParams(gocv.JPEGFileExt, mat, params)//buf, err : gocv.IMEncodeWithParams(gocv.JPEGFileExt, mat, params)if err ! nil {fmt.Printf(%v, err)return}os.WriteFile(/Users/xxx/GolandProjects/xxx/image-encoder/demo/quality/33.jpg, buf.GetBytes(), os.ModePerm)if err ! nil {fmt.Printf(%v, err)return}println(DONE.....) }接着尝试将我本地其他的PNG图片转换为JPG发现可以转换成功。表示这个代码是可以将PNG转换为JPG的。 于是开始排查是否是客户图片有破损比如图片的文件头已经损坏导致它不是一个标准的PNG图片。 通过查阅资料后发现PNG的头部为89 50 4E 47 0D 0A 1A 0A package mainimport (encoding/hexfmtos )func main() {filePath : /Users/xsky/GolandProjects/xxx/image-encoder/demo/quality/11.png // 替换为你的 PNG 图片文件路径file, err : os.Open(filePath)if err ! nil {fmt.Println(Error opening file:, err)return}defer file.Close()header : make([]byte, 8)_, err file.Read(header)if err ! nil {fmt.Println(Error reading file:, err)return}fmt.Println(PNG 文件头的16进制信息:)//89504e470d0a1a0a//89504e470d0a1a0afmt.Println(hex.EncodeToString(header)) }最终验证发现客户的PNG图片与我本地PNG图片一致文件头都是符合PNG格式的。 2.2 Alpha图像通道问题(shooting) 接着想着客户图像是灰白色的而我之前验证的本地图片为彩色加上我自己gocv处理图片的参数选择的是gocv.IMReadUnchanged。点进去查看源码发现还有其他的参数于是尝试替换其他参数。 //我之前代码的用法 mat, err : gocv.IMDecode(imageBuf, gocv.IMReadUnchanged)// IMReadUnchanged return the loaded image as is (with alpha channel, //otherwise it gets cropped). IMReadUnchanged IMReadFlag -1 # 处理带有Alpha参数的图像 // IMReadColor always converts image to the 3 channel BGR color image. IMReadColor IMReadFlag 1 # 将图片转换为BGR三色通道 // IMReadAnyColor the image is read in any possible color format. IMReadAnyColor IMReadFlag 4 # 根据图像自动识别任何可能的格式 ...知道这个参数之后我将gocv.IMDecode(imageBuf, gocv.IMReadUnchanged)中的IMReadUnchanged改为IMReadAnyColor最后验证成功处理客户图片。 目前可以知道我的图像处理参数选择有问题。于是开始查这几种参数有什么区别。其实点进去看源码就可以知道这几种参数的区别。 这个时候如果对图像处理不熟悉的朋友可能会问Alpha通道是什么意思其实大家可以简单的理解为和图像的透明度有关。 为了验证这个结论是否正确我尝试读取客户的PNG和我本地的彩色PNG的颜色Model是否不同 //color.RGBAModel # 我自己的图像 //color.Gray16Model # 客户的图像至此猜想成立可以知道是我图像的处理颜色的参数选择有误。 3 拓展图像color.Model 色彩模型RGBRGBACMYK灰度 matplotlib中的色彩定义主要用到了RGB、RGBA、CMYK、灰色四种模型。 这里我主要介绍RGBA模型 对这块感兴趣的朋友可以去看这边文章https://blog.csdn.net/mighty13/article/details/113616772 3.1 color.RGBAModel三色Alpha 带有alpha[RGBA 表示传统的32位预处理 Alpha 色每个颜色都有8位分别表示红色绿色蓝色和阿尔法。 ] type RGBA struct {R, G, B, A uint8 }3.2 color.RGBA64Model64位表示三色Alpha的值 带有alpha64位数来表示每个通道的值 type RGBA64 struct {R, G, B, A uint16 }3.3 color.NRGBAModel其他颜色不预乘Alpha的值 NRGBA 表示非 Alpha 预乘32位颜色非 alpha 预乘表示在进行颜色合成时颜色值不会提前乘以 alpha 通道的值 预乘什么是预乘假设一个像素点用RGBA四个分量来表示记做(R,G,B,A)那预乘后的像素就是(RA,GA,B*A, A)这里A的取值范围是[0,1]。所以预乘就是每个颜色分量都与该像素的alpha分量预先相乘。可以发现对于一个没有透明度或者说透明度为1的像素来说预乘不预乘结果都是一样的。NRGBA代表一个没有32位透明度加乘的颜色。每个红绿蓝和透明度都是bit的数值 type NRGBA struct {R, G, B, A uint8 }3.4 color.NRGBA64非预乘Alpha其他颜色用64位表示 NRGBA64 表示非 alpha 预乘 64 位颜色每个红色绿色蓝色和 alpha 有 16 位 NRGBA64代表无透明度加乘的64-bit的颜色它的每个红绿蓝和透明度都是个16bit的数值。 type NRGBA struct {R, G, B, A uint16 }3.5 color.AlphaModel代表一个8-bit的透明度 type Alpha struct {A uint8 }3.6 color.Alpha16Model代表一个16位的透明度 type Alpha struct {A uint16 }3.7 color.GrayModel灰度通道黑白图像 只有一个灰度通道通常用于表示黑白图像【当你需要读取只带有灰度通道的图像时你应该使用该标志来读取图像。】【也是由RGB组成不过由于是单通道因此呈现灰度】 3.8 color.Gray16Model16位整数表示灰度通道值 16位整数表示灰度通道的值通常用于表示黑白 参考 https://blog.csdn.net/zxcasd11/article/details/109446056https://blog.csdn.net/u013943420/article/details/76855416
http://www.dnsts.com.cn/news/74544.html

相关文章:

  • 网站建设 福步 2018读书分享会ppt模板免费下载
  • 怎么建设电影网站wordpress的点商
  • 机房建设 网站网站 设计理念
  • 宁德公司做网站wordpress缺少临时文件夹
  • 丽水市做网站的网站推广优化教程
  • 棠下手机网站建设报价wordpress腾讯云cos
  • 淘宝网站优化实例软件外包是什么意思
  • 网上做网站网站花都网站建设公司怎么样
  • 网络营销策划过程搜索引擎优化的完整过程
  • 网站制作项目执行中山祥云网站建设
  • 微设计公司网站合肥广告牌制作公司
  • 建设网站运营成本wordpress search标签页
  • 电子商务网站建设与规划案例网站上面的内容里面放照片怎么做
  • 网站建设与优化标准苏州保洁公司多少钱一个平方
  • 静态网站开发常用语言网站开发系统搭建
  • 工业做网站wordpress采集免费版下载
  • 黄石网站设计西安有什么网站
  • 网站备案加链接代码游戏代理免费加盟
  • 生意宝做网站行吗wordpress 主题商店
  • 中国建设工程标准化协会网站免费域名怎么弄
  • 大庆门户网站福安网站建设
  • 河北网站seo外包网站建设越来越便宜
  • hao123网站模板平邑建设银行网站
  • 可植入代码网站开发wordpress大学 插件
  • 长图可以在哪些网站做标签云 wordpress
  • 有口碑的镇江网站优化怎么做分享网站
  • HTML网站页面建设头条网站怎么做的
  • 产品网站建设自建站是什么意思
  • 网站对于企业的好处抖音推广方案和推广方式
  • 深圳市点击未来科技网站建设江西省城乡住房建设部网站