JAVA Opencv在图片上添加中文
生活随笔
收集整理的這篇文章主要介紹了
JAVA Opencv在图片上添加中文
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:
將圖片進行均值、中值、高斯濾波,高斯邊緣檢測,并在圖片上添加中文文字。
一、算法思想
二、代碼解析
進行均值模糊
均值濾波原理
/** * void blur(InputArray src, OutputArray dst, Size ksize, * Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT ) * src:輸入圖像 * dst:輸出圖像 * ksize:均值濾波器模板大小 * anchor:錨點,如果為Point(-1,-1),則錨點是濾波器的中心點 * borderType:邊緣點插值類型 * */ Imgproc.blur(src, gry, new Size(4, 4));實現中值模糊
中值濾波原理
/** * void medianBlur(InputArray src, OutputArray dst, int ksize) * src:輸入圖像 * dst:輸出圖像 * ksize:均值濾波器模板大小,因為模板為正方形,所以只有一個參數。 * */ Imgproc.medianBlur(src,dst,5);實現高斯濾波
高斯濾波原理
/** * void GaussianBlur(InputArray src, OutputArray dst, Size ksize, * double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT ) ; * src:輸入圖像 * dst:輸出圖像 * ksize:高斯濾波器模板大小,ksize的寬和高必須是奇數 * sigmaX:高斯濾波在橫線的濾波系數 * sigmaY:高斯濾波在豎向的濾波系數 * 如果參數sigmaX=sigmaY=0,則實際用的是公式sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8 * borderType:邊界的處理方式,一般默認 * */ Imgproc.GaussianBlur(dst, gry, new Size(7,7), 2, 2);高斯邊緣檢測
Laplacian函數
convertScaleAbs()使用詳解
圖片的文字寫入
圖片寫入報錯解決
public class AlterIimage {public static boolean createStringMark(String filePath,String markContent,String outPath) { ImageIcon imgIcon=new ImageIcon(filePath); Image theImg =imgIcon.getImage(); int width=theImg.getWidth(null)==-1?200:theImg.getWidth(null); int height= theImg.getHeight(null)==-1?200:theImg.getHeight(null); // System.out.println(width); // System.out.println(height); // System.out.println(theImg);BufferedImage bimage = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB); //將一副圖片加載到內存中Graphics2D g=bimage.createGraphics(); //創建一個指定 BufferedImage 的 Graphics2D 對象Color mycolor = Color.GREEN; g.setColor(mycolor); g.setBackground(Color.GREEN); g.drawImage(theImg, 0, 0, null ); g.setFont(new Font("宋體",Font.PLAIN,20)); //字體、字型、字號 g.drawString(markContent,20,25); //畫文字 g.dispose(); try { FileOutputStream out=new FileOutputStream(outPath); //先用一個特定的輸出文件名 /*** Eclipse默認把這些受訪問限制的API設成了ERROR。只要把Windows-Preferences-Java-Complicer-Errors/Warnings* 里面的Deprecated and restricted API中的Forbidden references(access rules)選為Warning就可以編譯通過。* */JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage); param.setQuality(100, true);encoder.encode(bimage, param);out.close(); } catch(Exception e) { return false; } return true; } }最后結果展示
總結
以上是生活随笔為你收集整理的JAVA Opencv在图片上添加中文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言i++和++i程序_使用C ++程
- 下一篇: Java ByteArrayOutput