実現したいこと
https://labo-code.com/python/drawcontours-image/#google_vignette
こちらのサイトを参考に画像を読み込み,輪郭を抽出できるようにコードを作成しています.
ソースコードの「//ここに追記」の部分にImgproc.drawContoursを記述しないといけないようなのですが,どのように記述したら良いかわかりませんでした.
発生している問題・エラーメッセージ
現時点では実行したところエラーは出ません.
ですが記述に誤りが含まれている場合があります.
既に書いている部分にも誤りがある場合,訂正していただけると助かります.
該当のソースコード
Swift
1import SwiftUI2import opencv2 3 4struct ContentView: View {5 @State var img:UIImage? = nil6 var body: some View {7 if let img = img {8 Image(uiImage: img)9 .resizable()10 .scaledToFit()11 }12 Button(action: {13 let readImg = UIImage(named: "001")14 let src = Mat(uiImage: readImg!)15 // グレースケール16 let dstGray = Mat()17 Imgproc.cvtColor(src: src, dst: dstGray, code: ColorConversionCodes.COLOR_RGB2GRAY)18 // 平滑化19 let dstBlur = Mat()20 Imgproc.blur(src: dstGray, dst: dstBlur, ksize: Size2i(width: 9, height: 9))21 // 二値化22 let dstThresh = Mat()23 Imgproc.threshold(src: dstBlur, dst: dstThresh, thresh: 100, maxval: 255, type: ThresholdTypes.THRESH_BINARY)24 //エッジ検出25 let dstCanny = Mat()26 Imgproc.Canny(image: dstThresh, edges: dstCanny, threshold1: 10, threshold2: 360)27 28 var dstLine = Mat()29 var contours: NSMutableArray = []30 Imgproc.findContours(image: dstCanny, contours: contours, hierarchy: dstLine, mode: RetrievalModes.RETR_EXTERNAL, method: ContourApproximationModes.CHAIN_APPROX_SIMPLE)31 //ここに追記32 img = src.toUIImage()33 }){34 Text("change img")35 }36 }37}38 39struct ContentView_Previews: PreviewProvider {40 static var previews: some View {41 ContentView()42 }43}
補足情報(FW/ツールのバージョンなど)
macOS 14.1.2
Xcode 15.0.1
0 コメント