發(fā)布時間:2024-07-29 14:41:22 瀏覽量:259次
想要在WinForms應(yīng)用程序中使用C#和OpenCvSharp實現(xiàn)圖片裁剪功能嗎?其實很簡單,只需通過一個簡單的WinForms界面就可以完成這個任務(wù)。
Mat類是OpenCvSharp中用于表示圖像和矩陣的核心類,你可以利用它來加載、保存、裁剪和處理圖像。
首先需要在nuget中安裝OpenCvSharp4,在此過程中記得引用OpenCvSharp4.runtime.win庫,避免出現(xiàn)錯誤提醒,比如DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern' or one of its dependencies。
同時,也要記得引用OpenCvSharp.Extensions庫,確保可以順利進行圖片處理。
下面是一個示例代碼,展示了如何進行圖像裁剪操作:
private void btnCrop_Click(object sender, EventArgs e){ Mat sourceImage; // 將Image對象轉(zhuǎn)換為Mat對象 Mat matFromImage = BitmapConverter.ToMat(new Bitmap(pic.Image)); if(matFromImage!=null ) { int x = 0; int y = 0; int width = 100; int height = 100; x =int.Parse( txtPostion.Text.Split(",")[0]); y = int.Parse(txtPostion.Text.Split(",")[1]); Rect cropRegion = new Rect(x, y, width, height); Mat croppedImage = new Mat(matFromImage, cropRegion); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "JPEG Image|*.jpg"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { croppedImage.SaveImage(saveFileDialog.FileName); MessageBox.Show("裁剪完成并保存。"); } croppedImage.Release(); }}
除了裁剪操作,也可以對圖像進行區(qū)域截取,如下代碼所示:
private void btnCrop_Click(object sender, EventArgs e){ Mat sourceImage = BitmapConverter.ToMat(new Bitmap(pic.Image)); //創(chuàng)建一個與原始圖像相同大小的黑色圖像,這將作為我們的圓形掩碼 Mat mask = new Mat(sourceImage.Size(), MatType.CV_8U, new Scalar(0)); //在掩碼上繪制一個白色的圓形: OpenCvSharp.Point center = new OpenCvSharp.Point(mask.Cols / 2, mask.Rows / 2); // 圓心坐標(biāo) int radius = Math.Min(mask.Cols, mask.Rows) / 2; // 半徑,取圖像寬度和高度的最小值的一半 Cv2.Circle(mask, center, radius, Scalar.White, -1); // -1 表示填充圓形 Mat result = new Mat(); sourceImage.CopyTo(result, mask); //將Mat轉(zhuǎn)換為Image Bitmap bitmap = BitmapConverter.ToBitmap(result); pictureBox1.Image= bitmap;}
以上就是關(guān)于使用C#和OpenCvSharp實現(xiàn)圖片裁剪功能的內(nèi)容,希望能為你提供幫助。
想要了解更多關(guān)于數(shù)字藝術(shù)教育的內(nèi)容嗎?歡迎點擊點擊咨詢,了解火星時代教育提供的游戲設(shè)計培訓(xùn)、動畫培訓(xùn)、UI設(shè)計培訓(xùn)等課程。
熱門資訊
想了解動畫制作和影視特效的區(qū)別嗎?本文將帶您深入探討動畫制作和影視特效之間的關(guān)系,幫助你更好地理解這兩者的差異。
想知道快影、剪映、快剪輯這三款軟件哪個更適合小白?看看這篇對比評測,帶你了解這三款軟件的功能和特點,快速選擇適合自己的視頻剪輯軟件。
剪映專業(yè)版新增全局預(yù)覽縮放功能,可以輕松放大或縮小時間軌道。學(xué)習(xí)如何使用時間線縮放功能,提升剪輯效率。
4. 豆瓣8.3《鐵皮鼓》|電影符號學(xué)背后的視覺盛宴、社會隱喻主題
文|悅兒(叮咚,好電影來了!)《鐵皮鼓》是施隆多夫最具代表性的作品,影片于... 分析影片的社會隱喻主題;以及對于普通觀眾來說,它又帶給我們哪些現(xiàn)實啟發(fā)...
5. 從宏觀蒙太奇思維、中觀敘事結(jié)構(gòu)、微觀剪輯手法解讀《花樣年華》
中觀層面完成敘事結(jié)構(gòu)、以及微觀層面的剪輯手法,3個層次來解讀下電影《花樣年華》的蒙太奇魅力。一、 宏觀層面:運用蒙太奇思維構(gòu)建電影劇本雛形。蒙...
6. 15種電影剪輯/轉(zhuǎn)場藝術(shù),賦予影片絕妙魅力
15種電影剪輯/轉(zhuǎn)場手法,讓影片更吸引眼球!回顧電影中豐富多樣的專場技巧,比如瞬間從一個場景中變換到空中... 現(xiàn)在是測試技術(shù)的時候了!以下是一些常見剪輯手法,讓你觀影過程更加華麗動人!
本文介紹了十款強大的PR視頻剪輯插件,幫助提升視頻剪輯效率,提高創(chuàng)作品質(zhì),并降低創(chuàng)作難度。
8. 零基礎(chǔ)怎么學(xué)習(xí)視頻剪輯?新手視頻剪輯教程
1、每個切點需要理由和動機 很剪輯師認為,賦予每一個切點動機是非常困難的。很多...
電影創(chuàng)作者可以通過表意、造型、畫面展示等元素對隱身性的含義進行隱喻,打... 電影和夢境都具有普遍性的象征意義,夢境中的元素能夠代表人內(nèi)心的欲望,...
10. 干貨丨真正厲害的剪輯師都喜歡用這九大“技巧轉(zhuǎn)場”
想學(xué)習(xí)剪輯技術(shù)轉(zhuǎn)場的方法嗎?了解這九種技巧轉(zhuǎn)場方法,提升影片藝術(shù)感染力,讓你的視頻作品更加生動有趣!
最新文章
同學(xué)您好!