「图像校正java」图像校正为何要设置黑白场
本篇文章给大家谈谈图像校正java,以及图像校正为何要设置黑白场对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、怎么用java代码放大或缩小图片不失真。
- 2、java旋转照片颜色失真太大,求指导
- 3、java图像处理 - 图片上的数字字母圆滑处理方法
- 4、图像校正的图像校正分类
- 5、java图像旋转失去质量问题,怎么解决
- 6、用Java给jpg图片加文字水印,加的水印盖住了原来的图片,怎么办。
怎么用java代码放大或缩小图片不失真。
放大图像不会导致失真,而缩小图像将不可避免的失真。
Java中也同样是这样。
但java提供了4个缩放的微调选项。
image.SCALE_SMOOTH
//平滑优先
image.SCALE_FAST//速度优先
image.SCALE_AREA_AVERAGING
//区域均值
image.SCALE_REPLICATE
//像素复制型缩放
image.SCALE_DEFAULT
//默认缩放模式
调用方法
Image
new_img=old_img.getScaledInstance(1024,
768,
Image.SCALE_SMOOTH);
得到一张缩放后的新图。
java旋转照片颜色失真太大,求指导
代码不完整,测试不了。
/**
* 旋转图片为指定角度
*
* @param bufferedimage
* 目标图像
* @param degree
* 旋转角度
* @return
*/
public static BufferedImage rotateImage(final BufferedImage bufferedimage, final int degree){
int w= bufferedimage.getWidth();// 得到图片宽度。
int h= bufferedimage.getHeight();// 得到图片高度。
int type= bufferedimage.getColorModel().getTransparency();// 得到图片透明度。
BufferedImage img;// 空的图片。
Graphics2D graphics2d;// 空的画笔。
(graphics2d= (img= new BufferedImage(w, h, type)).createGraphics()).setRenderingHint( RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2);// 旋转,degree是整型,度数,比如垂直90度。
graphics2d.drawImage(bufferedimage, 0, 0, null);// 从bufferedimagecopy图片至img,0,0是img的坐标。
graphics2d.dispose();
return img;// 返回复制好的图片,原图片依然没有变,没有旋转,下次还可以使用。
}
看看别人的写法
java图像处理 - 图片上的数字字母圆滑处理方法
抗锯齿的代码我倒是有一个,你试一下,输出图片第一行是不抗锯齿的,第二行是抗锯齿的。
public static void main(String[] args) throws IOException {
BufferedImage image = new BufferedImage(400, 200, BufferedImage.TYPE_4BYTE_ABGR_PRE);
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, 400, 200);
g2d.setColor(Color.BLACK);
g2d.setFont(new Font("Arial", Font.PLAIN, 37));
g2d.drawString("jjyygg789@163.com", 10f, 40f);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);// 设置抗锯齿效果
g2d.drawString("jjyygg789@163.com", 10f, 80f);
File outputfile = new File("D:\\TestGraphics.png");
ImageIO.write(image, "PNG", outputfile);
}
图像校正的图像校正分类
图像校正主要分为两类:几何校正和灰度校正。
图象几何校正
其思路是通过一些已知的参考点,即无失真图象的某些象素点和畸变图象相应象素的坐标间对应关系,拟合出映射关系中的未知系数,并作为恢复其它象素的基础。
几何校正的基本方法是:
首先建立几何校正的数学模型;
其次利用已知条件确定模型参数;
最后根据模型对图像进行几何校正。
具体操作通常分两步:
①对图像进行空间坐标变换;首先建立图像像点坐标(行、列号)和物方(或参考图)对应点坐标间的映射关系,解求映射关系中的未知参数,然后根据映射关系对图像各个像素坐标进行校正;
②确定各像素的灰度值(灰度内插)。
java图像旋转失去质量问题,怎么解决
使用的几个类
Graphics2d
AffineTransform
BufferedImage
1. Graphics2d 方式
利用Graphics2d的rotate方法来实现图片旋转,奇怪的是一直不生效,实现代码如下
BufferedImage bufferedImage = ImageUtil.getImageByPath("bg.png");
Graphics2D g2d = bufferedImage.createGraphics();
g2d.rotate(Math.toRadians(90), bufferedImage.getWidth() 1, bufferedImage.getHeight() 1);
g2d.dispose();1234
2. AffineTransform 方式
BufferedImage bufferedImage = ImageUtil.getImageByPath("bg.png");
AffineTransform tx = new AffineTransform();
tx.rotate(0.5, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);
AffineTransformOp op = new AffineTransformOp(tx,
AffineTransformOp.TYPE_BILINEAR);
bufferedImage = op.filter(bufferedImage, null);
用Java给jpg图片加文字水印,加的水印盖住了原来的图片,怎么办。
jpg文件上的水印的清除方法:
如果需要将带水印的JPG转换成05H的PDG:
1、 将PDG批量更名为JPG。如果下载的时候就已经是JPG,则此步省略。
2、用ComicEnhancer Pro打开带水印的JPG,色彩选“单色”,水印没了吧?不过这个时候文字多半也会变得很细,可以通过增加“Gamma校正”值,或用“曲线”来加黑。注意“Gamma校正”和“曲线”选一个足矣。调节好以后,转换成TIFF。
3、将TIFF文件更名为PDG,并且符合PDG文件命名规范,然后用高版本DjVuToy的“PDG压缩”功能转换成05H的PDG。注意转换的时候把“转换为快速版”选项去掉。
如果不需要转换成PDG,而是希望在去掉水印的同时尽可能保持清晰:
1、将PDG批量更名为JPG。如果下载的时候就已经是JPG,则此步省略。
2、用ComicEnhancer Pro打开带水印的JPG,将“高亮度”设置为125,看到那神奇的效果了吗?如果希望对文字的影响尽可能小,还可以尝试将“高亮值”设置为210。
3、下面就看你高兴了,可以直接存为JPG,也可以在色彩选“16级灰度”、“8级灰度”、“4级灰度”,然后转换成PNG。灰度级数越少,图像损失越多,文件越小,16级灰度基本上肉眼看不出文字部分有任何损失,4级灰度则很明显,可以结合“曲线”或“Gamma校正”等加以改善。
图像校正java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于图像校正为何要设置黑白场、图像校正java的信息别忘了在本站进行查找喔。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。