diff --git a/src/PIL/Image.py b/src/PIL/Image.py
--- a/src/PIL/Image.py
+++ b/src/PIL/Image.py
@@ -1027,6 +1027,19 @@ def convert_transparency(m, v):
                     warnings.warn("Couldn't allocate palette entry for transparency")
             return new
 
+        if "LAB" in (self.mode, mode):
+            other_mode = mode if self.mode == "LAB" else self.mode
+            if other_mode in ("RGB", "RGBA", "RGBX"):
+                from . import ImageCms
+
+                srgb = ImageCms.createProfile("sRGB")
+                lab = ImageCms.createProfile("LAB")
+                profiles = [lab, srgb] if self.mode == "LAB" else [srgb, lab]
+                transform = ImageCms.buildTransform(
+                    profiles[0], profiles[1], self.mode, mode
+                )
+                return transform.apply(self)
+
         # colorspace conversion
         if dither is None:
             dither = Dither.FLOYDSTEINBERG

diff --git a/Tests/test_image_convert.py b/Tests/test_image_convert.py
--- a/Tests/test_image_convert.py
+++ b/Tests/test_image_convert.py
@@ -242,6 +242,17 @@ def test_p2pa_palette():
     assert im_pa.getpalette() == im.getpalette()
 
 
+@pytest.mark.parametrize("mode", ("RGB", "RGBA", "RGBX"))
+def test_rgb_lab(mode):
+    im = Image.new(mode, (1, 1))
+    converted_im = im.convert("LAB")
+    assert converted_im.getpixel((0, 0)) == (0, 128, 128)
+
+    im = Image.new("LAB", (1, 1), (255, 0, 0))
+    converted_im = im.convert(mode)
+    assert converted_im.getpixel((0, 0))[:3] == (0, 255, 255)
+
+
 def test_matrix_illegal_conversion():
     # Arrange
     im = hopper("CMYK")

convert("LAB") fails for RGB
### What did you do?

Called PIL.Image.Image.convert(mode='LAB') for an RGB image
```python
img = PIL.Image.open('filename.png').convert(mode='LAB')
```
### What did you expect to happen?

Conversion of data to LAB colourspace.

### What actually happened?

ValueError: conversion from RGB to LAB not supported

The following code did work:
```python
rgb_lab_transform = PIL.ImageCms.buildTransformFromOpenProfiles(PIL.ImageCms.createProfile('sRGB'), PIL.ImageCms.createProfile('LAB'), 'RGB', 'LAB')
img = PIL.ImageCms.applyTransform(Image.open('filename.png').convert(mode='RGB'), rgb_lab_transform)
```

### What are your OS, Python and Pillow versions?

* OS: Linux, kernel 5.15.32-gentoo-r1
* Python: 3.10.6
* Pillow: 9.2.0


