国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Open CV 圖像處理基礎(chǔ):(五)Java 使用 Open CV 的繪圖函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了Open CV 圖像處理基礎(chǔ):(五)Java 使用 Open CV 的繪圖函數(shù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Java 使用 Open CV 的繪圖函數(shù)

使用 Open CV 在 Java 中對圖片使用繪圖函數(shù),分別繪制矩形、斜線、圓形、橢圓形以及添加文本

函數(shù)

繪制矩形

Imgproc.rectangle(Mat img, Point pt1, Point pt2, Scalar color, int thickness);

參數(shù)說明:

  • Mat img: 要繪制矩形的圖像。
  • Point pt1: 矩形的一個(gè)頂點(diǎn)。
  • Point pt2: 與 pt1 相對的矩形的另一個(gè)頂點(diǎn)(不是矩形的對角線上的相鄰頂點(diǎn))。
  • Scalar color: 矩形的顏色。Scalar(B,G,R,A) 分別表示藍(lán)色、綠色、紅色和 Alpha(透明度)值,用于定義顏色。在不需要透明度時(shí),可忽略最后一個(gè)參數(shù)。
  • int thickness: 矩形邊框的厚度。正值表示矩形輪廓的厚度,負(fù)值(如 Imgproc.FILLED)表示填充整個(gè)矩形。

此外,Imgproc.rectangle 還有一個(gè)重載版本,它接受線型和偏移量:

Imgproc.rectangle(Mat img, Point pt1, Point pt2, Scalar color, int thickness, int lineType, int shift);
  • int lineType: 繪制線條的類型,它可以是 Imgproc.LINE_8、Imgproc.LINE_4 或 Imgproc.LINE_AA,其中 LINE_AA 是抗鋸齒線型。
  • int shift: 點(diǎn)坐標(biāo)中小數(shù)點(diǎn)后的位數(shù)。

繪制線

Imgproc.line(Mat img, Point pt1, Point pt2, Scalar color, int thickness);

參數(shù)說明:

  • Mat img: 要繪制直線的圖像。
  • Point pt1: 直線起點(diǎn)的坐標(biāo)。
  • Point pt2: 直線終點(diǎn)的坐標(biāo)。
  • Scalar color: 直線的顏色。Scalar 對象包含四個(gè)元素,按順序表示藍(lán)色、綠色、紅色通道的強(qiáng)度(BGR格式),以及可選的 Alpha 通道(透明度),取值范圍通常是 0 到 255。如果不涉及 Alpha 通道,你可以忽略第四個(gè)值。
  • int thickness: 直線的厚度。
  • Imgproc.line 還有一個(gè)重載版本,它允許你指定線條類型和點(diǎn)坐標(biāo)的小數(shù)位:
Imgproc.line(Mat img, Point pt1, Point pt2, Scalar color, int thickness, int lineType, int shift);
  • int lineType: 繪制線條的類型??梢允?Imgproc.LINE_8, Imgproc.LINE_4 或 Imgproc.LINE_AA,其中 LINE_AA 表示抗鋸齒線條。
  • int shift: 頂點(diǎn)坐標(biāo)中小數(shù)點(diǎn)后的位數(shù)。如果 shift 是非零值,那么所有的坐標(biāo)值都將被相應(yīng)地左移 shift 位。這可以用來精確繪制直線,特別是當(dāng)你在一個(gè)更精細(xì)的網(wǎng)格中工作時(shí)。

繪制圓形

Imgproc.circle(image, circleCenter, radius, circleColor, -1);

參數(shù)說明:

  • Mat img: 要繪制圓形的圖像。
  • Point center: 圓心的坐標(biāo)。
  • int radius: 圓的半徑。
  • Scalar color: 圓形的顏色。Scalar 對象包含四個(gè)元素,按順序表示藍(lán)色、綠色、紅色通道的強(qiáng)度(BGR格式),以及可選的 Alpha 通道(透明度),取值范圍通常是 0 到 255。如果不涉及 Alpha 通道,你可以忽略第四個(gè)值。
  • int thickness: 圓形邊框的厚度。正值表示圓周的厚度,特殊值Imgproc.FILLED(或-1)表示填充整個(gè)圓。

Imgproc.circle 函數(shù)也可以通過指定線條類型來繪制:

Imgproc.circle(Mat img, Point center, int radius, Scalar color, int thickness, int lineType, int shift);
  • int lineType: 繪制線條的類型,可以是 Imgproc.LINE_8, Imgproc.LINE_4 或 Imgproc.LINE_AA,其中 LINE_AA 是抗鋸齒線條。
  • int shift: 圓心坐標(biāo)中小數(shù)點(diǎn)后的位數(shù)。如果 shift 是非零值,那么所有的坐標(biāo)值都將被相應(yīng)地左移 shift 位。這可以用來精確繪制圓形,尤其是在需要超高精度定位時(shí)。

繪制橢圓

Imgproc.ellipse(image, ellipseCenter, axes, 45, 0, 360, ellipseColor, 2);

添加文本

Imgproc.putText(image, text, textOrg, fontFace, fontScale, textColor, 2);

代碼

這段代碼首先加載了OpenCV的本地庫,然后創(chuàng)建了一個(gè)400x400像素的黑色圖像。之后,在圖像上繪制了一個(gè)綠色的矩形、一個(gè)藍(lán)色的斜線、一個(gè)紅色的圓形、一個(gè)黃色的橢圓形,并添加了白色的文本“OpenCV”。


import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import static org.opencv.imgproc.Imgproc.FONT_HERSHEY_COMPLEX;

public class ImageDrawing {
    static {
        // 加載 OpenCV 的本地庫
        System.load("D:/dll/x64/opencv_java440.dll");
    }
    public static void main(String[] args) {
        String outPut = "D:/to/image_draw.jpg";
        // 創(chuàng)建一個(gè)空的Mat對象(圖像)
        Mat image = Mat.zeros(new Size(400, 400), CvType.CV_8UC3);
        // 繪制矩形
        // 參數(shù):目標(biāo)圖像,左上角點(diǎn),右下角點(diǎn),顏色(BGR格式),線條粗細(xì)
        Point rectStart = new Point(50, 50);
        Point rectEnd = new Point(150, 150);
        Scalar rectColor = new Scalar(0, 255, 0); // 綠色
        Imgproc.rectangle(image, rectStart, rectEnd, rectColor, 3);

        // 繪制斜線
        // 參數(shù):目標(biāo)圖像,起點(diǎn),終點(diǎn),顏色,線條粗細(xì)
        Point lineStart = new Point(200, 50);
        Point lineEnd = new Point(300, 150);
        Scalar lineColor = new Scalar(255, 0, 0); // 藍(lán)色
        Imgproc.line(image, lineStart, lineEnd, lineColor, 3);

        // 繪制圓形
        // 參數(shù):目標(biāo)圖像,圓心,半徑,顏色,線條粗細(xì)(負(fù)值代表填充)
        Point circleCenter = new Point(100, 300);
        int radius = 40;
        Scalar circleColor = new Scalar(0, 0, 255); // 紅色
        Imgproc.circle(image, circleCenter, radius, circleColor, -1);

        // 繪制橢圓形
        // 參數(shù):目標(biāo)圖像,橢圓中心,半軸長度,旋轉(zhuǎn)角度,開始角度,結(jié)束角度,顏色,線條粗細(xì)
        Point ellipseCenter = new Point(300, 300);
        Size axes = new Size(50, 80);
        Scalar ellipseColor = new Scalar(255, 255, 0); // 黃色
        Imgproc.ellipse(image, ellipseCenter, axes, 45, 0, 360, ellipseColor, 2);

        // 添加文本
        // 參數(shù):目標(biāo)圖像,文本內(nèi)容,文本位置,字體類型,字體大小,顏色,線條粗細(xì)
        String text = "OpenCV";
        int fontFace = FONT_HERSHEY_COMPLEX;
        Point textOrg = new Point(50, 200);
        double fontScale = 1.0;
        Scalar textColor = new Scalar(255, 255, 255); // 白色
        Imgproc.putText(image, text, textOrg, fontFace, fontScale, textColor, 2);

        // 保存圖像
        Imgcodecs.imwrite(outPut, image);

        // 注意:如果需要在窗口中直接顯示圖像,Java版OpenCV可能不包括HighGui模塊。
        // 如果你的環(huán)境支持HighGui,你可以取消注釋以下代碼來顯示圖像:
         HighGui.imshow("Drawing Example", image);
         HighGui.waitKey(0);
    }
}

示例

Open CV 圖像處理基礎(chǔ):(五)Java 使用 Open CV 的繪圖函數(shù),Open CV,圖像處理,java,人工智能,opencv文章來源地址http://www.zghlxwxcb.cn/news/detail-783399.html

Open CV 專欄導(dǎo)航

  • (一)Open CV 在windows環(huán)境初始化和 Java 動(dòng)態(tài)庫加載方式介紹
  • (二)Open CV 從基本概念到實(shí)踐操作
  • (三)使用 Open CV 在 Java 中進(jìn)行基本的圖片縮放操作
  • (四)使用 Open CV 在 Java 中進(jìn)行基本的圖片模糊處理
  • (五)Java 使用 Open CV 的繪圖函數(shù)
  • (六)在Java中使用 Open CV進(jìn)行圖片翻轉(zhuǎn)和圖片旋轉(zhuǎn)
  • (七)學(xué)習(xí) OpenCV 的圖像增強(qiáng)和邊緣檢測功能

到了這里,關(guān)于Open CV 圖像處理基礎(chǔ):(五)Java 使用 Open CV 的繪圖函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 圖像處理:基于cv2.inpaint()圖像修補(bǔ)

    圖像處理:基于cv2.inpaint()圖像修補(bǔ)

    今天我們將學(xué)習(xí)如何通過一種“修復(fù)”的方法消除舊照片中的小噪音,筆畫等。當(dāng)然,經(jīng)過我的測試你也可以將其用于削弱混雜了其他的顏色的圖像。 大多數(shù)人家都會(huì)有一些舊的的舊化照片,上面有黑點(diǎn),一些筆觸等。你是否曾經(jīng)想過將其還原?我們不能簡單地在繪畫工具中

    2024年02月04日
    瀏覽(21)
  • MATLAB 之 隱函數(shù)繪圖、圖形修飾處理、圖像處理與動(dòng)畫制作和交互式繪圖工具

    MATLAB 之 隱函數(shù)繪圖、圖形修飾處理、圖像處理與動(dòng)畫制作和交互式繪圖工具

    如果給定了函數(shù)的顯式表達(dá)式,可以先設(shè)置自變量向量,然后根據(jù)表達(dá)式計(jì)算出函數(shù)向量,從而用 plot 、 plot3 等函數(shù)繪制出圖形。 但如果函數(shù)用隱函數(shù)形式給出,則很難用上述方法繪制出圖形。對此,MATLAB 提供了一些函數(shù)用來繪制隱函數(shù)圖形。 隱函數(shù)二維繪圖采用 ezplot 函數(shù)

    2024年02月07日
    瀏覽(25)
  • 【CV學(xué)習(xí)筆記】圖像預(yù)處理warpaffine

    【CV學(xué)習(xí)筆記】圖像預(yù)處理warpaffine

    在學(xué)習(xí)圖像預(yù)處理的時(shí)候發(fā)現(xiàn),之前用的圖像預(yù)處理方法一般為 resize和letter box,這兩種方法比較低效,后來在手寫AI中接觸到了warpaffine,只需要一步就能夠?qū)D像進(jìn)行預(yù)處理,同時(shí)還能很方便的進(jìn)行cuda加速,于是便記錄下來。 歡迎正在學(xué)習(xí)或者想學(xué)的CV的同學(xué)進(jìn)群一起討論與

    2023年04月08日
    瀏覽(69)
  • 數(shù)字圖像處理 --- 相機(jī)的內(nèi)參與外參(CV學(xué)習(xí)筆記)

    數(shù)字圖像處理 --- 相機(jī)的內(nèi)參與外參(CV學(xué)習(xí)筆記)

    Pinhole Camera Model(針孔相機(jī)模型) ????????針孔相機(jī)是一種沒有鏡頭、只有一個(gè)小光圈的簡單相機(jī)。 光線穿過光圈并在相機(jī)的另一側(cè)呈現(xiàn)倒立的圖像。為了建模方便,我們可以把 物理成像平面 (image plane)上的圖像移到 實(shí)際場景 (3D object)和 焦點(diǎn) (focal point)之間,把他想象成

    2024年02月12日
    瀏覽(25)
  • Open3D圖像處理功能詳解:Python中強(qiáng)大的三維圖像庫

    Open3D圖像處理功能詳解:Python中強(qiáng)大的三維圖像庫 Open3D是一款在Python語言中使用的開源3D圖形庫,以其強(qiáng)大的功能和易用性而被廣泛應(yīng)用于計(jì)算機(jī)視覺、機(jī)器人技術(shù)、虛擬現(xiàn)實(shí)等領(lǐng)域。其中,Open3D提供了完善的圖像處理工具,使得Python開發(fā)者可以便捷地進(jìn)行三維圖像的處理和

    2024年02月12日
    瀏覽(23)
  • 圖像平滑處理:cv::filter2D()函數(shù)詳解

    圖像平滑處理:cv::filter2D()函數(shù)詳解

    cv::filter2D 函數(shù)可以對圖像進(jìn)行線性濾波。 函數(shù)可以對圖像進(jìn)行線性濾波。該函數(shù)使用指定的卷積核對輸入圖像進(jìn)行卷積,以計(jì)算輸出圖像中每個(gè)像素的值。 該函數(shù)的原型如下: 其中, src 參數(shù)表示輸入圖像, dst 參數(shù)表示輸出圖像, ddepth 參數(shù)表示輸出圖像的深度, kernel 參

    2024年02月11日
    瀏覽(17)
  • opencv-34 圖像平滑處理-雙邊濾波cv2.bilateralFilter()

    opencv-34 圖像平滑處理-雙邊濾波cv2.bilateralFilter()

    雙邊濾波(BilateralFiltering)是一種圖像處理濾波技術(shù),用于平滑圖像并同時(shí)保留邊緣信息。與其他傳統(tǒng)的線性濾波方法不同,雙邊濾波在考慮像素之間的空間距離之外,還考慮了像素之間的灰度值相似性。這使得雙邊濾波能夠有效地去除噪聲,同時(shí)保持圖像的細(xì)節(jié)和邊緣。

    2024年02月14日
    瀏覽(23)
  • opencv 31-圖像平滑處理-方框?yàn)V波cv2.boxFilter()

    opencv 31-圖像平滑處理-方框?yàn)V波cv2.boxFilter()

    方框?yàn)V波(Box Filtering)是一種簡單的圖像平滑處理方法,它主要用于去除圖像中的噪聲和減少細(xì)節(jié),同時(shí)保持圖像的整體亮度分布。 方框?yàn)V波的原理很簡單:對于圖像中的每個(gè)像素,將其周圍的一個(gè)固定大小的鄰域內(nèi)的像素值取平均,然后將這個(gè)平均值賦值給當(dāng)前像素。這

    2024年02月14日
    瀏覽(19)
  • opencv 30 -圖像平滑處理01-均值濾波 cv2.blur()

    opencv 30 -圖像平滑處理01-均值濾波 cv2.blur()

    圖像平滑處理(Image Smoothing)是一種圖像處理技術(shù),旨在減少圖像中的噪聲、去除細(xì)節(jié)并平滑圖像的過渡部分。這種處理常用于預(yù)處理圖像,以便在后續(xù)圖像處理任務(wù)中獲得更好的結(jié)果。 常用的圖像平滑處理方法包括: 均值濾波(Mean Filtering) :用圖像中像素周圍區(qū)域的平

    2024年02月01日
    瀏覽(88)
  • opencv(15) 圖像平滑處理之二:cv2.GaussianBlur()高斯濾波

    opencv(15) 圖像平滑處理之二:cv2.GaussianBlur()高斯濾波

    高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過程。 高斯模板是通過對二維高斯函數(shù)進(jìn)行采樣(高斯模糊的卷積核里的數(shù)值滿足高斯分布)、量化并歸一化得到的,它考慮了鄰域像素位置的影響,距離當(dāng)前被平滑像素越近的點(diǎn),加權(quán)系數(shù)越大

    2024年02月10日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包